summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99482.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99482.patch')
-rw-r--r--meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99482.patch84
1 files changed, 0 insertions, 84 deletions
diff --git a/meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99482.patch b/meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99482.patch
deleted file mode 100644
index 334ac4ec1a..0000000000
--- a/meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99482.patch
+++ /dev/null
@@ -1,84 +0,0 @@
1 2011-02-02 Richard Sandiford <richard.sandiford@linaro.org>
2
3 gcc/
4 Backport from mainline:
5
6 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
7 Richard Sandiford <rdsandiford@googlemail.com>
8
9 PR rtl-optimization/47166
10 * reload1.c (emit_reload_insns): Disable the spill_reg_store
11 mechanism for PRE_MODIFY and POST_MODIFY.
12 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
13 reloadreg.
14
15 gcc/testsuite/
16 * gcc.c-torture/execute/postmod-1.c: New test.
17
18=== added file 'gcc/testsuite/gcc.c-torture/execute/postmod-1.c'
19--- old/gcc/testsuite/gcc.c-torture/execute/postmod-1.c 1970-01-01 00:00:00 +0000
20+++ new/gcc/testsuite/gcc.c-torture/execute/postmod-1.c 2011-02-02 14:23:10 +0000
21@@ -0,0 +1,62 @@
22+#define DECLARE_ARRAY(A) array##A[0x10]
23+#define DECLARE_COUNTER(A) counter##A = 0
24+#define DECLARE_POINTER(A) *pointer##A = array##A + x
25+/* Create a loop that allows post-modification of pointerA, followed by
26+ a use of the post-modified address. */
27+#define BEFORE(A) counter##A += *pointer##A, pointer##A += 3
28+#define AFTER(A) counter##A += pointer##A[x]
29+
30+/* Set up the arrays so that one iteration of the loop sets the counter
31+ to 3.0f. */
32+#define INIT_ARRAY(A) array##A[1] = 1.0f, array##A[5] = 2.0f
33+
34+/* Check that the loop worked correctly for all values. */
35+#define CHECK_ARRAY(A) exit_code |= (counter##A != 3.0f)
36+
37+/* Having 6 copies triggered the bug for ARM and Thumb. */
38+#define MANY(A) A (0), A (1), A (2), A (3), A (4), A (5)
39+
40+/* Each addendA should be allocated a register. */
41+#define INIT_VOLATILE(A) addend##A = vol
42+#define ADD_VOLATILE(A) vol += addend##A
43+
44+/* Having 5 copies triggered the bug for ARM and Thumb. */
45+#define MANY2(A) A (0), A (1), A (2), A (3), A (4)
46+
47+float MANY (DECLARE_ARRAY);
48+float MANY (DECLARE_COUNTER);
49+
50+volatile int stop = 1;
51+volatile int vol;
52+
53+void __attribute__((noinline))
54+foo (int x)
55+{
56+ float MANY (DECLARE_POINTER);
57+ int i;
58+
59+ do
60+ {
61+ MANY (BEFORE);
62+ MANY (AFTER);
63+ /* Create an inner loop that should ensure the code above
64+ has registers free for reload inheritance. */
65+ {
66+ int MANY2 (INIT_VOLATILE);
67+ for (i = 0; i < 10; i++)
68+ MANY2 (ADD_VOLATILE);
69+ }
70+ }
71+ while (!stop);
72+}
73+
74+int
75+main (void)
76+{
77+ int exit_code = 0;
78+
79+ MANY (INIT_ARRAY);
80+ foo (1);
81+ MANY (CHECK_ARRAY);
82+ return exit_code;
83+}
84