diff options
Diffstat (limited to 'meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106741.patch')
-rw-r--r-- | meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106741.patch | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106741.patch b/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106741.patch index 84f6f64989..f53b26a888 100644 --- a/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106741.patch +++ b/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106741.patch | |||
@@ -17,8 +17,10 @@ | |||
17 | for STORE_FLAG_VALUE==-1 case. | 17 | for STORE_FLAG_VALUE==-1 case. |
18 | 18 | ||
19 | === modified file 'gcc/combine.c' | 19 | === modified file 'gcc/combine.c' |
20 | --- old/gcc/combine.c 2011-02-15 19:46:26 +0000 | 20 | Index: gcc-4_6-branch/gcc/combine.c |
21 | +++ new/gcc/combine.c 2011-04-26 17:03:58 +0000 | 21 | =================================================================== |
22 | --- gcc-4_6-branch.orig/gcc/combine.c 2011-09-16 19:58:21.000000000 -0700 | ||
23 | +++ gcc-4_6-branch/gcc/combine.c 2011-09-16 20:05:36.626650681 -0700 | ||
22 | @@ -391,8 +391,8 @@ | 24 | @@ -391,8 +391,8 @@ |
23 | static void undo_all (void); | 25 | static void undo_all (void); |
24 | static void undo_commit (void); | 26 | static void undo_commit (void); |
@@ -30,7 +32,7 @@ | |||
30 | static rtx simplify_if_then_else (rtx); | 32 | static rtx simplify_if_then_else (rtx); |
31 | static rtx simplify_set (rtx); | 33 | static rtx simplify_set (rtx); |
32 | static rtx simplify_logical (rtx); | 34 | static rtx simplify_logical (rtx); |
33 | @@ -3086,12 +3086,12 @@ | 35 | @@ -3112,12 +3112,12 @@ |
34 | if (i1) | 36 | if (i1) |
35 | { | 37 | { |
36 | subst_low_luid = DF_INSN_LUID (i1); | 38 | subst_low_luid = DF_INSN_LUID (i1); |
@@ -45,7 +47,7 @@ | |||
45 | } | 47 | } |
46 | } | 48 | } |
47 | 49 | ||
48 | @@ -3103,7 +3103,7 @@ | 50 | @@ -3129,7 +3129,7 @@ |
49 | self-referential RTL when we will be substituting I1SRC for I1DEST | 51 | self-referential RTL when we will be substituting I1SRC for I1DEST |
50 | later. Likewise if I0 feeds into I2, either directly or indirectly | 52 | later. Likewise if I0 feeds into I2, either directly or indirectly |
51 | through I1, and I0DEST is in I0SRC. */ | 53 | through I1, and I0DEST is in I0SRC. */ |
@@ -54,7 +56,7 @@ | |||
54 | (i1_feeds_i2_n && i1dest_in_i1src) | 56 | (i1_feeds_i2_n && i1dest_in_i1src) |
55 | || ((i0_feeds_i2_n || (i0_feeds_i1_n && i1_feeds_i2_n)) | 57 | || ((i0_feeds_i2_n || (i0_feeds_i1_n && i1_feeds_i2_n)) |
56 | && i0dest_in_i0src)); | 58 | && i0dest_in_i0src)); |
57 | @@ -3142,7 +3142,7 @@ | 59 | @@ -3168,7 +3168,7 @@ |
58 | copy of I1SRC each time we substitute it, in order to avoid creating | 60 | copy of I1SRC each time we substitute it, in order to avoid creating |
59 | self-referential RTL when we will be substituting I0SRC for I0DEST | 61 | self-referential RTL when we will be substituting I0SRC for I0DEST |
60 | later. */ | 62 | later. */ |
@@ -63,7 +65,7 @@ | |||
63 | i0_feeds_i1_n && i0dest_in_i0src); | 65 | i0_feeds_i1_n && i0dest_in_i0src); |
64 | substed_i1 = 1; | 66 | substed_i1 = 1; |
65 | 67 | ||
66 | @@ -3172,7 +3172,7 @@ | 68 | @@ -3198,7 +3198,7 @@ |
67 | 69 | ||
68 | n_occurrences = 0; | 70 | n_occurrences = 0; |
69 | subst_low_luid = DF_INSN_LUID (i0); | 71 | subst_low_luid = DF_INSN_LUID (i0); |
@@ -72,7 +74,7 @@ | |||
72 | substed_i0 = 1; | 74 | substed_i0 = 1; |
73 | } | 75 | } |
74 | 76 | ||
75 | @@ -3234,7 +3234,7 @@ | 77 | @@ -3260,7 +3260,7 @@ |
76 | { | 78 | { |
77 | rtx t = i1pat; | 79 | rtx t = i1pat; |
78 | if (i0_feeds_i1_n) | 80 | if (i0_feeds_i1_n) |
@@ -81,7 +83,7 @@ | |||
81 | 83 | ||
82 | XVECEXP (newpat, 0, --total_sets) = t; | 84 | XVECEXP (newpat, 0, --total_sets) = t; |
83 | } | 85 | } |
84 | @@ -3242,10 +3242,10 @@ | 86 | @@ -3268,10 +3268,10 @@ |
85 | { | 87 | { |
86 | rtx t = i2pat; | 88 | rtx t = i2pat; |
87 | if (i1_feeds_i2_n) | 89 | if (i1_feeds_i2_n) |
@@ -94,7 +96,7 @@ | |||
94 | 96 | ||
95 | XVECEXP (newpat, 0, --total_sets) = t; | 97 | XVECEXP (newpat, 0, --total_sets) = t; |
96 | } | 98 | } |
97 | @@ -4914,11 +4914,13 @@ | 99 | @@ -4943,11 +4943,13 @@ |
98 | 100 | ||
99 | IN_DEST is nonzero if we are processing the SET_DEST of a SET. | 101 | IN_DEST is nonzero if we are processing the SET_DEST of a SET. |
100 | 102 | ||
@@ -109,7 +111,7 @@ | |||
109 | { | 111 | { |
110 | enum rtx_code code = GET_CODE (x); | 112 | enum rtx_code code = GET_CODE (x); |
111 | enum machine_mode op0_mode = VOIDmode; | 113 | enum machine_mode op0_mode = VOIDmode; |
112 | @@ -4979,7 +4981,7 @@ | 114 | @@ -5008,7 +5010,7 @@ |
113 | && GET_CODE (XVECEXP (x, 0, 0)) == SET | 115 | && GET_CODE (XVECEXP (x, 0, 0)) == SET |
114 | && GET_CODE (SET_SRC (XVECEXP (x, 0, 0))) == ASM_OPERANDS) | 116 | && GET_CODE (SET_SRC (XVECEXP (x, 0, 0))) == ASM_OPERANDS) |
115 | { | 117 | { |
@@ -118,7 +120,7 @@ | |||
118 | 120 | ||
119 | /* If this substitution failed, this whole thing fails. */ | 121 | /* If this substitution failed, this whole thing fails. */ |
120 | if (GET_CODE (new_rtx) == CLOBBER | 122 | if (GET_CODE (new_rtx) == CLOBBER |
121 | @@ -4996,7 +4998,7 @@ | 123 | @@ -5025,7 +5027,7 @@ |
122 | && GET_CODE (dest) != CC0 | 124 | && GET_CODE (dest) != CC0 |
123 | && GET_CODE (dest) != PC) | 125 | && GET_CODE (dest) != PC) |
124 | { | 126 | { |
@@ -127,7 +129,7 @@ | |||
127 | 129 | ||
128 | /* If this substitution failed, this whole thing fails. */ | 130 | /* If this substitution failed, this whole thing fails. */ |
129 | if (GET_CODE (new_rtx) == CLOBBER | 131 | if (GET_CODE (new_rtx) == CLOBBER |
130 | @@ -5042,8 +5044,8 @@ | 132 | @@ -5071,8 +5073,8 @@ |
131 | } | 133 | } |
132 | else | 134 | else |
133 | { | 135 | { |
@@ -138,7 +140,7 @@ | |||
138 | 140 | ||
139 | /* If this substitution failed, this whole thing | 141 | /* If this substitution failed, this whole thing |
140 | fails. */ | 142 | fails. */ |
141 | @@ -5120,7 +5122,9 @@ | 143 | @@ -5149,7 +5151,9 @@ |
142 | && (code == SUBREG || code == STRICT_LOW_PART | 144 | && (code == SUBREG || code == STRICT_LOW_PART |
143 | || code == ZERO_EXTRACT)) | 145 | || code == ZERO_EXTRACT)) |
144 | || code == SET) | 146 | || code == SET) |
@@ -149,7 +151,7 @@ | |||
149 | 151 | ||
150 | /* If we found that we will have to reject this combination, | 152 | /* If we found that we will have to reject this combination, |
151 | indicate that by returning the CLOBBER ourselves, rather than | 153 | indicate that by returning the CLOBBER ourselves, rather than |
152 | @@ -5177,7 +5181,7 @@ | 154 | @@ -5206,7 +5210,7 @@ |
153 | /* If X is sufficiently simple, don't bother trying to do anything | 155 | /* If X is sufficiently simple, don't bother trying to do anything |
154 | with it. */ | 156 | with it. */ |
155 | if (code != CONST_INT && code != REG && code != CLOBBER) | 157 | if (code != CONST_INT && code != REG && code != CLOBBER) |
@@ -158,7 +160,7 @@ | |||
158 | 160 | ||
159 | if (GET_CODE (x) == code) | 161 | if (GET_CODE (x) == code) |
160 | break; | 162 | break; |
161 | @@ -5197,10 +5201,12 @@ | 163 | @@ -5226,10 +5230,12 @@ |
162 | expression. | 164 | expression. |
163 | 165 | ||
164 | OP0_MODE is the original mode of XEXP (x, 0). IN_DEST is nonzero | 166 | OP0_MODE is the original mode of XEXP (x, 0). IN_DEST is nonzero |
@@ -173,7 +175,7 @@ | |||
173 | { | 175 | { |
174 | enum rtx_code code = GET_CODE (x); | 176 | enum rtx_code code = GET_CODE (x); |
175 | enum machine_mode mode = GET_MODE (x); | 177 | enum machine_mode mode = GET_MODE (x); |
176 | @@ -5255,8 +5261,8 @@ | 178 | @@ -5284,8 +5290,8 @@ |
177 | false arms to store-flag values. Be careful to use copy_rtx | 179 | false arms to store-flag values. Be careful to use copy_rtx |
178 | here since true_rtx or false_rtx might share RTL with x as a | 180 | here since true_rtx or false_rtx might share RTL with x as a |
179 | result of the if_then_else_cond call above. */ | 181 | result of the if_then_else_cond call above. */ |
@@ -184,16 +186,16 @@ | |||
184 | 186 | ||
185 | /* If true_rtx and false_rtx are not general_operands, an if_then_else | 187 | /* If true_rtx and false_rtx are not general_operands, an if_then_else |
186 | is unlikely to be simpler. */ | 188 | is unlikely to be simpler. */ |
187 | @@ -5600,7 +5606,7 @@ | 189 | @@ -5629,7 +5635,7 @@ |
188 | { | 190 | { |
189 | /* Try to simplify the expression further. */ | 191 | /* Try to simplify the expression further. */ |
190 | rtx tor = simplify_gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1)); | 192 | rtx tor = simplify_gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1)); |
191 | - temp = combine_simplify_rtx (tor, mode, in_dest); | 193 | - temp = combine_simplify_rtx (tor, VOIDmode, in_dest); |
192 | + temp = combine_simplify_rtx (tor, mode, in_dest, 0); | 194 | + temp = combine_simplify_rtx (tor, VOIDmode, in_dest, 0); |
193 | 195 | ||
194 | /* If we could, great. If not, do not go ahead with the IOR | 196 | /* If we could, great. If not, do not go ahead with the IOR |
195 | replacement, since PLUS appears in many special purpose | 197 | replacement, since PLUS appears in many special purpose |
196 | @@ -5693,7 +5699,16 @@ | 198 | @@ -5722,7 +5728,16 @@ |
197 | ZERO_EXTRACT is indeed appropriate, it will be placed back by | 199 | ZERO_EXTRACT is indeed appropriate, it will be placed back by |
198 | the call to make_compound_operation in the SET case. */ | 200 | the call to make_compound_operation in the SET case. */ |
199 | 201 | ||
@@ -211,7 +213,7 @@ | |||
211 | && new_code == NE && GET_MODE_CLASS (mode) == MODE_INT | 213 | && new_code == NE && GET_MODE_CLASS (mode) == MODE_INT |
212 | && op1 == const0_rtx | 214 | && op1 == const0_rtx |
213 | && mode == GET_MODE (op0) | 215 | && mode == GET_MODE (op0) |
214 | @@ -5739,7 +5754,10 @@ | 216 | @@ -5768,7 +5783,10 @@ |
215 | 217 | ||
216 | /* If STORE_FLAG_VALUE is -1, we have cases similar to | 218 | /* If STORE_FLAG_VALUE is -1, we have cases similar to |
217 | those above. */ | 219 | those above. */ |
@@ -223,7 +225,7 @@ | |||
223 | && new_code == NE && GET_MODE_CLASS (mode) == MODE_INT | 225 | && new_code == NE && GET_MODE_CLASS (mode) == MODE_INT |
224 | && op1 == const0_rtx | 226 | && op1 == const0_rtx |
225 | && (num_sign_bit_copies (op0, mode) | 227 | && (num_sign_bit_copies (op0, mode) |
226 | @@ -5937,11 +5955,11 @@ | 228 | @@ -5966,11 +5984,11 @@ |
227 | if (reg_mentioned_p (from, true_rtx)) | 229 | if (reg_mentioned_p (from, true_rtx)) |
228 | true_rtx = subst (known_cond (copy_rtx (true_rtx), true_code, | 230 | true_rtx = subst (known_cond (copy_rtx (true_rtx), true_code, |
229 | from, true_val), | 231 | from, true_val), |
@@ -237,7 +239,7 @@ | |||
237 | 239 | ||
238 | SUBST (XEXP (x, 1), swapped ? false_rtx : true_rtx); | 240 | SUBST (XEXP (x, 1), swapped ? false_rtx : true_rtx); |
239 | SUBST (XEXP (x, 2), swapped ? true_rtx : false_rtx); | 241 | SUBST (XEXP (x, 2), swapped ? true_rtx : false_rtx); |
240 | @@ -6158,11 +6176,11 @@ | 242 | @@ -6187,11 +6205,11 @@ |
241 | { | 243 | { |
242 | temp = subst (simplify_gen_relational (true_code, m, VOIDmode, | 244 | temp = subst (simplify_gen_relational (true_code, m, VOIDmode, |
243 | cond_op0, cond_op1), | 245 | cond_op0, cond_op1), |
@@ -251,4 +253,3 @@ | |||
251 | temp = simplify_gen_binary (op, m, gen_lowpart (m, z), temp); | 253 | temp = simplify_gen_binary (op, m, gen_lowpart (m, z), temp); |
252 | 254 | ||
253 | if (extend_op != UNKNOWN) | 255 | if (extend_op != UNKNOWN) |
254 | |||