summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0119-Backport-from-mainline.patch
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2011-06-17 17:11:43 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-06-23 11:50:07 +0100
commit0faa5f72999fea82fadda8bab70abea2303216c7 (patch)
tree05a8c18d2f67d883f94d2bd6f060ab0f4ac7f156 /meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0119-Backport-from-mainline.patch
parentc2007ba4cdb64fa9e308d3dae395c03ef4cc9161 (diff)
downloadpoky-0faa5f72999fea82fadda8bab70abea2303216c7.tar.gz
gcc-4.6: Switch to using svn SRC_URI for recipe
We call the recipes 4.6 Remove the backport patches (From OE-Core rev: 68b545f4ff719f2b6e57d68b002dc9845c7a14ae) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0119-Backport-from-mainline.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0119-Backport-from-mainline.patch138
1 files changed, 0 insertions, 138 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0119-Backport-from-mainline.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0119-Backport-from-mainline.patch
deleted file mode 100644
index 400ac23eff..0000000000
--- a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0119-Backport-from-mainline.patch
+++ /dev/null
@@ -1,138 +0,0 @@
1From ede3baf6fc1fe4972344051051daff1043f90ce3 Mon Sep 17 00:00:00 2001
2From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
3Date: Wed, 13 Apr 2011 22:36:59 +0000
4Subject: [PATCH] Backport from mainline:
5 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6
7 PR target/48366
8 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
9 move from floating point to shift amount register .
10 (emit_move_sequence): Remove secondary reload support for floating
11 point to shift amount amount register copies.
12 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
13 amount register copies.
14 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
15 register, return false if mode isn't a scalar integer mode.
16 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
17
18
19
20git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@172400 138bc75d-0d04-0410-961f-82ee72b054a4
21
22index 98267b0..8a691c7 100644
23--- a/gcc/config/pa/pa.c
24+++ b/gcc/config/pa/pa.c
25@@ -1467,6 +1467,8 @@ hppa_register_move_cost (enum machine_mode mode ATTRIBUTE_UNUSED,
26 {
27 if (from == SHIFT_REGS)
28 return 0x100;
29+ else if (to == SHIFT_REGS && FP_REG_CLASS_P (from))
30+ return 18;
31 else if ((FP_REG_CLASS_P (from) && ! FP_REG_CLASS_P (to))
32 || (FP_REG_CLASS_P (to) && ! FP_REG_CLASS_P (from)))
33 return 16;
34@@ -1810,15 +1812,12 @@ emit_move_sequence (rtx *operands, enum machine_mode mode, rtx scratch_reg)
35 return 1;
36 }
37 /* Handle secondary reloads for SAR. These occur when trying to load
38- the SAR from memory, FP register, or with a constant. */
39+ the SAR from memory or a constant. */
40 else if (scratch_reg
41 && GET_CODE (operand0) == REG
42 && REGNO (operand0) < FIRST_PSEUDO_REGISTER
43 && REGNO_REG_CLASS (REGNO (operand0)) == SHIFT_REGS
44- && (GET_CODE (operand1) == MEM
45- || GET_CODE (operand1) == CONST_INT
46- || (GET_CODE (operand1) == REG
47- && FP_REG_CLASS_P (REGNO_REG_CLASS (REGNO (operand1))))))
48+ && (GET_CODE (operand1) == MEM || GET_CODE (operand1) == CONST_INT))
49 {
50 /* D might not fit in 14 bits either; for such cases load D into
51 scratch reg. */
52@@ -5883,6 +5882,10 @@ output_arg_descriptor (rtx call_insn)
53 fputc ('\n', asm_out_file);
54 }
55
56+/* Inform reload about cases where moving X with a mode MODE to a register in
57+ RCLASS requires an extra scratch or immediate register. Return the class
58+ needed for the immediate register. */
59+
60 static reg_class_t
61 pa_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i,
62 enum machine_mode mode, secondary_reload_info *sri)
63@@ -5985,24 +5988,29 @@ pa_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i,
64 return NO_REGS;
65 }
66
67- /* We need a secondary register (GPR) for copies between the SAR
68- and anything other than a general register. */
69- if (rclass == SHIFT_REGS && (regno <= 0 || regno >= 32))
70+ /* A SAR<->FP register copy requires an intermediate general register
71+ and secondary memory. We need a secondary reload with a general
72+ scratch register for spills. */
73+ if (rclass == SHIFT_REGS)
74 {
75- sri->icode = (in_p
76- ? direct_optab_handler (reload_in_optab, mode)
77- : direct_optab_handler (reload_out_optab, mode));
78- return NO_REGS;
79+ /* Handle spill. */
80+ if (regno >= FIRST_PSEUDO_REGISTER || regno < 0)
81+ {
82+ sri->icode = (in_p
83+ ? direct_optab_handler (reload_in_optab, mode)
84+ : direct_optab_handler (reload_out_optab, mode));
85+ return NO_REGS;
86+ }
87+
88+ /* Handle FP copy. */
89+ if (FP_REG_CLASS_P (REGNO_REG_CLASS (regno)))
90+ return GENERAL_REGS;
91 }
92
93- /* A SAR<->FP register copy requires a secondary register (GPR) as
94- well as secondary memory. */
95 if (regno >= 0 && regno < FIRST_PSEUDO_REGISTER
96- && (REGNO_REG_CLASS (regno) == SHIFT_REGS
97- && FP_REG_CLASS_P (rclass)))
98- sri->icode = (in_p
99- ? direct_optab_handler (reload_in_optab, mode)
100- : direct_optab_handler (reload_out_optab, mode));
101+ && REGNO_REG_CLASS (regno) == SHIFT_REGS
102+ && FP_REG_CLASS_P (rclass))
103+ return GENERAL_REGS;
104
105 return NO_REGS;
106 }
107diff --git a/gcc/config/pa/pa32-regs.h b/gcc/config/pa/pa32-regs.h
108index 7e8e05d..9a1c067 100644
109--- a/gcc/config/pa/pa32-regs.h
110+++ b/gcc/config/pa/pa32-regs.h
111@@ -209,6 +209,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
112 registers. */
113 #define HARD_REGNO_MODE_OK(REGNO, MODE) \
114 ((REGNO) == 0 ? (MODE) == CCmode || (MODE) == CCFPmode \
115+ : (REGNO) == 88 ? SCALAR_INT_MODE_P (MODE) \
116 : !TARGET_PA_11 && FP_REGNO_P (REGNO) \
117 ? (VALID_FP_MODE_P (MODE) \
118 && (GET_MODE_SIZE (MODE) <= 8 \
119diff --git a/gcc/config/pa/pa64-regs.h b/gcc/config/pa/pa64-regs.h
120index 23dc778..313577b 100644
121--- a/gcc/config/pa/pa64-regs.h
122+++ b/gcc/config/pa/pa64-regs.h
123@@ -149,10 +149,11 @@ along with GCC; see the file COPYING3. If not see
124
125 /* Value is 1 if hard register REGNO can hold a value of machine-mode MODE.
126 On the HP-PA, the cpu registers can hold any mode. We
127- force this to be an even register is it cannot hold the full mode. */
128+ force this to be an even register if it cannot hold the full mode. */
129 #define HARD_REGNO_MODE_OK(REGNO, MODE) \
130 ((REGNO) == 0 \
131 ? (MODE) == CCmode || (MODE) == CCFPmode \
132+ : (REGNO) == 60 ? SCALAR_INT_MODE_P (MODE) \
133 /* Make wide modes be in aligned registers. */ \
134 : FP_REGNO_P (REGNO) \
135 ? (VALID_FP_MODE_P (MODE) \
136--
1371.7.0.4
138