summaryrefslogtreecommitdiffstats
path: root/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106811.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106811.patch')
-rw-r--r--toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106811.patch203
1 files changed, 0 insertions, 203 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106811.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106811.patch
deleted file mode 100644
index 41b5c6dbf..000000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106811.patch
+++ /dev/null
@@ -1,203 +0,0 @@
12011-09-15 Richard Sandiford <richard.sandiford@linaro.org>
2
3 Revert:
4
5 gcc/
6 PR target/49030
7 * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
8 * config/arm/arm.c (maybe_get_arm_condition_code): New function,
9 reusing the old code from get_arm_condition_code. Return ARM_NV
10 for invalid comparison codes.
11 (get_arm_condition_code): Redefine in terms of
12 maybe_get_arm_condition_code.
13 * config/arm/predicates.md (arm_comparison_operator): Use
14 maybe_get_arm_condition_code.
15
16 gcc/testsuite/
17 PR target/49030
18 * gcc.dg/torture/pr49030.c: New test.
19
20=== modified file 'gcc/config/arm/arm-protos.h'
21--- old/gcc/config/arm/arm-protos.h 2011-09-12 14:14:00 +0000
22+++ new/gcc/config/arm/arm-protos.h 2011-09-15 09:45:31 +0000
23@@ -180,7 +180,6 @@
24 #endif
25 extern int thumb_shiftable_const (unsigned HOST_WIDE_INT);
26 #ifdef RTX_CODE
27-extern enum arm_cond_code maybe_get_arm_condition_code (rtx);
28 extern void thumb1_final_prescan_insn (rtx);
29 extern void thumb2_final_prescan_insn (rtx);
30 extern const char *thumb_load_double_from_address (rtx *);
31
32=== modified file 'gcc/config/arm/arm.c'
33--- old/gcc/config/arm/arm.c 2011-09-12 14:14:00 +0000
34+++ new/gcc/config/arm/arm.c 2011-09-15 09:45:31 +0000
35@@ -17494,10 +17494,10 @@
36 decremented/zeroed by arm_asm_output_opcode as the insns are output. */
37
38 /* Returns the index of the ARM condition code string in
39- `arm_condition_codes', or ARM_NV if the comparison is invalid.
40- COMPARISON should be an rtx like `(eq (...) (...))'. */
41-enum arm_cond_code
42-maybe_get_arm_condition_code (rtx comparison)
43+ `arm_condition_codes'. COMPARISON should be an rtx like
44+ `(eq (...) (...))'. */
45+static enum arm_cond_code
46+get_arm_condition_code (rtx comparison)
47 {
48 enum machine_mode mode = GET_MODE (XEXP (comparison, 0));
49 enum arm_cond_code code;
50@@ -17521,11 +17521,11 @@
51 case CC_DLTUmode: code = ARM_CC;
52
53 dominance:
54+ gcc_assert (comp_code == EQ || comp_code == NE);
55+
56 if (comp_code == EQ)
57 return ARM_INVERSE_CONDITION_CODE (code);
58- if (comp_code == NE)
59- return code;
60- return ARM_NV;
61+ return code;
62
63 case CC_NOOVmode:
64 switch (comp_code)
65@@ -17534,7 +17534,7 @@
66 case EQ: return ARM_EQ;
67 case GE: return ARM_PL;
68 case LT: return ARM_MI;
69- default: return ARM_NV;
70+ default: gcc_unreachable ();
71 }
72
73 case CC_Zmode:
74@@ -17542,7 +17542,7 @@
75 {
76 case NE: return ARM_NE;
77 case EQ: return ARM_EQ;
78- default: return ARM_NV;
79+ default: gcc_unreachable ();
80 }
81
82 case CC_Nmode:
83@@ -17550,7 +17550,7 @@
84 {
85 case NE: return ARM_MI;
86 case EQ: return ARM_PL;
87- default: return ARM_NV;
88+ default: gcc_unreachable ();
89 }
90
91 case CCFPEmode:
92@@ -17575,7 +17575,7 @@
93 /* UNEQ and LTGT do not have a representation. */
94 case UNEQ: /* Fall through. */
95 case LTGT: /* Fall through. */
96- default: return ARM_NV;
97+ default: gcc_unreachable ();
98 }
99
100 case CC_SWPmode:
101@@ -17591,7 +17591,7 @@
102 case GTU: return ARM_CC;
103 case LEU: return ARM_CS;
104 case LTU: return ARM_HI;
105- default: return ARM_NV;
106+ default: gcc_unreachable ();
107 }
108
109 case CC_Cmode:
110@@ -17599,7 +17599,7 @@
111 {
112 case LTU: return ARM_CS;
113 case GEU: return ARM_CC;
114- default: return ARM_NV;
115+ default: gcc_unreachable ();
116 }
117
118 case CC_CZmode:
119@@ -17611,7 +17611,7 @@
120 case GTU: return ARM_HI;
121 case LEU: return ARM_LS;
122 case LTU: return ARM_CC;
123- default: return ARM_NV;
124+ default: gcc_unreachable ();
125 }
126
127 case CC_NCVmode:
128@@ -17621,7 +17621,7 @@
129 case LT: return ARM_LT;
130 case GEU: return ARM_CS;
131 case LTU: return ARM_CC;
132- default: return ARM_NV;
133+ default: gcc_unreachable ();
134 }
135
136 case CCmode:
137@@ -17637,22 +17637,13 @@
138 case GTU: return ARM_HI;
139 case LEU: return ARM_LS;
140 case LTU: return ARM_CC;
141- default: return ARM_NV;
142+ default: gcc_unreachable ();
143 }
144
145 default: gcc_unreachable ();
146 }
147 }
148
149-/* Like maybe_get_arm_condition_code, but never return ARM_NV. */
150-static enum arm_cond_code
151-get_arm_condition_code (rtx comparison)
152-{
153- enum arm_cond_code code = maybe_get_arm_condition_code (comparison);
154- gcc_assert (code != ARM_NV);
155- return code;
156-}
157-
158 /* Tell arm_asm_output_opcode to output IT blocks for conditionally executed
159 instructions. */
160 void
161
162=== modified file 'gcc/config/arm/predicates.md'
163--- old/gcc/config/arm/predicates.md 2011-09-12 12:32:29 +0000
164+++ new/gcc/config/arm/predicates.md 2011-09-15 09:45:31 +0000
165@@ -243,9 +243,10 @@
166 ;; True for integer comparisons and, if FP is active, for comparisons
167 ;; other than LTGT or UNEQ.
168 (define_special_predicate "arm_comparison_operator"
169- (and (match_code "eq,ne,le,lt,ge,gt,geu,gtu,leu,ltu,
170- unordered,ordered,unlt,unle,unge,ungt")
171- (match_test "maybe_get_arm_condition_code (op) != ARM_NV")))
172+ (ior (match_code "eq,ne,le,lt,ge,gt,geu,gtu,leu,ltu")
173+ (and (match_test "TARGET_32BIT && TARGET_HARD_FLOAT
174+ && (TARGET_FPA || TARGET_VFP)")
175+ (match_code "unordered,ordered,unlt,unle,unge,ungt"))))
176
177 (define_special_predicate "lt_ge_comparison_operator"
178 (match_code "lt,ge"))
179
180=== removed file 'gcc/testsuite/gcc.dg/torture/pr49030.c'
181--- old/gcc/testsuite/gcc.dg/torture/pr49030.c 2011-09-05 09:40:19 +0000
182+++ new/gcc/testsuite/gcc.dg/torture/pr49030.c 1970-01-01 00:00:00 +0000
183@@ -1,19 +0,0 @@
184-void
185-sample_move_d32u24_sS (char *dst, float *src, unsigned long nsamples,
186- unsigned long dst_skip)
187-{
188- long long y;
189- while (nsamples--)
190- {
191- y = (long long) (*src * 8388608.0f) << 8;
192- if (y > 2147483647) {
193- *(int *) dst = 2147483647;
194- } else if (y < -2147483647 - 1) {
195- *(int *) dst = -2147483647 - 1;
196- } else {
197- *(int *) dst = (int) y;
198- }
199- dst += dst_skip;
200- src++;
201- }
202-}
203