summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2011-10-18 01:39:48 +0000
committerKoen Kooi <koen@dominion.thruhere.net>2011-10-20 19:25:50 +0200
commit0368dfd5d8285fe31c853097846e8a6822c7cda0 (patch)
treeb0f5c8a906e0bf6fdd9bb9e7aa82202d8630a5c8
parent0aec849fffedf1fed7fd031ecf40d7370f11697b (diff)
downloadmeta-openembedded-0368dfd5d8285fe31c853097846e8a6822c7cda0.tar.gz
gcc-4.6: Remove the patches that are already applied via oe-core
Please apply after http://git.openembedded.org/openembedded-core-contrib/log/?h=kraj/gcc-update has been merged into oe-core Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-rw-r--r--meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106729.patch32
-rw-r--r--meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106743.patch25
-rw-r--r--meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106761.patch188
-rw-r--r--meta-oe/recipes-devtools/gcc/gcc-4_6-branch-linaro-backports.inc3
4 files changed, 0 insertions, 248 deletions
diff --git a/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106729.patch b/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106729.patch
deleted file mode 100644
index 465d09c1a..000000000
--- a/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106729.patch
+++ /dev/null
@@ -1,32 +0,0 @@
12011-03-22 Andrew Stubbs <ams@codesourcery.com>
2
3 Backport from FSF:
4
5 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
6
7 gcc/
8 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
9 for barrier handlers.
10
11=== modified file 'gcc/config/arm/unwind-arm.c'
12--- old/gcc/config/arm/unwind-arm.c 2009-10-30 14:55:10 +0000
13+++ new/gcc/config/arm/unwind-arm.c 2011-03-22 10:59:10 +0000
14@@ -1196,8 +1196,6 @@
15 ucbp->barrier_cache.bitpattern[4] = (_uw) &data[1];
16
17 if (data[0] & uint32_highbit)
18- phase2_call_unexpected_after_unwind = 1;
19- else
20 {
21 data += rtti_count + 1;
22 /* Setup for entry to the handler. */
23@@ -1207,6 +1205,8 @@
24 _Unwind_SetGR (context, 0, (_uw) ucbp);
25 return _URC_INSTALL_CONTEXT;
26 }
27+ else
28+ phase2_call_unexpected_after_unwind = 1;
29 }
30 if (data[0] & uint32_highbit)
31 data++;
32
diff --git a/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106743.patch b/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106743.patch
deleted file mode 100644
index aba2a497e..000000000
--- a/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106743.patch
+++ /dev/null
@@ -1,25 +0,0 @@
12011-04-26 Andrew Stubbs <ams@codesourcery.com>
2
3 Backport from FSF:
4
5 2011-04-05 Tom de Vries <tom@codesourcery.com>
6
7 PR target/43920
8 gcc/
9 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
10 for size.
11
12=== modified file 'gcc/config/arm/arm.h'
13--- old/gcc/config/arm/arm.h 2011-05-03 15:17:25 +0000
14+++ new/gcc/config/arm/arm.h 2011-04-26 14:42:21 +0000
15@@ -2018,7 +2018,8 @@
16 /* Try to generate sequences that don't involve branches, we can then use
17 conditional instructions */
18 #define BRANCH_COST(speed_p, predictable_p) \
19- (TARGET_32BIT ? 4 : (optimize > 0 ? 2 : 0))
20+ (TARGET_32BIT ? (TARGET_THUMB2 && !speed_p ? 1 : 4) \
21+ : (optimize > 0 ? 2 : 0))
22
23 /* Position Independent Code. */
24 /* We decide which register to use based on the compilation options and
25
diff --git a/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106761.patch b/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106761.patch
deleted file mode 100644
index 4374e7ed6..000000000
--- a/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106761.patch
+++ /dev/null
@@ -1,188 +0,0 @@
1 gcc/
2 Backport from mainline:
3
4 Chung-Lin Tang <cltang@codesourcery.com>
5 Richard Earnshaw <rearnsha@arm.com>
6
7 PR target/48250
8 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
9 to use sign-magnitude offsets. Reject unsupported unaligned
10 cases. Add detailed description in comments.
11 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
12 condition from TARGET_32BIT to TARGET_ARM.
13
14 Chung-Lin Tang <cltang@codesourcery.com>
15
16 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
17 quad-word modes, reduce to 9-bit index range when above 1016
18 limit.
19
20=== modified file 'gcc/config/arm/arm.c'
21--- old/gcc/config/arm/arm.c 2011-06-14 16:00:30 +0000
22+++ new/gcc/config/arm/arm.c 2011-06-27 22:14:07 +0000
23@@ -6488,23 +6488,134 @@
24 HOST_WIDE_INT val = INTVAL (XEXP (*p, 1));
25 HOST_WIDE_INT low, high;
26
27- if (mode == DImode || (mode == DFmode && TARGET_SOFT_FLOAT))
28- low = ((val & 0xf) ^ 0x8) - 0x8;
29- else if (TARGET_MAVERICK && TARGET_HARD_FLOAT)
30- /* Need to be careful, -256 is not a valid offset. */
31- low = val >= 0 ? (val & 0xff) : -((-val) & 0xff);
32- else if (mode == SImode
33- || (mode == SFmode && TARGET_SOFT_FLOAT)
34- || ((mode == HImode || mode == QImode) && ! arm_arch4))
35- /* Need to be careful, -4096 is not a valid offset. */
36- low = val >= 0 ? (val & 0xfff) : -((-val) & 0xfff);
37- else if ((mode == HImode || mode == QImode) && arm_arch4)
38- /* Need to be careful, -256 is not a valid offset. */
39- low = val >= 0 ? (val & 0xff) : -((-val) & 0xff);
40- else if (GET_MODE_CLASS (mode) == MODE_FLOAT
41- && TARGET_HARD_FLOAT && TARGET_FPA)
42- /* Need to be careful, -1024 is not a valid offset. */
43- low = val >= 0 ? (val & 0x3ff) : -((-val) & 0x3ff);
44+ /* Detect coprocessor load/stores. */
45+ bool coproc_p = ((TARGET_HARD_FLOAT
46+ && (TARGET_VFP || TARGET_FPA || TARGET_MAVERICK)
47+ && (mode == SFmode || mode == DFmode
48+ || (mode == DImode && TARGET_MAVERICK)))
49+ || (TARGET_REALLY_IWMMXT
50+ && VALID_IWMMXT_REG_MODE (mode))
51+ || (TARGET_NEON
52+ && (VALID_NEON_DREG_MODE (mode)
53+ || VALID_NEON_QREG_MODE (mode))));
54+
55+ /* For some conditions, bail out when lower two bits are unaligned. */
56+ if ((val & 0x3) != 0
57+ /* Coprocessor load/store indexes are 8-bits + '00' appended. */
58+ && (coproc_p
59+ /* For DI, and DF under soft-float: */
60+ || ((mode == DImode || mode == DFmode)
61+ /* Without ldrd, we use stm/ldm, which does not
62+ fair well with unaligned bits. */
63+ && (! TARGET_LDRD
64+ /* Thumb-2 ldrd/strd is [-1020,+1020] in steps of 4. */
65+ || TARGET_THUMB2))))
66+ return false;
67+
68+ /* When breaking down a [reg+index] reload address into [(reg+high)+low],
69+ of which the (reg+high) gets turned into a reload add insn,
70+ we try to decompose the index into high/low values that can often
71+ also lead to better reload CSE.
72+ For example:
73+ ldr r0, [r2, #4100] // Offset too large
74+ ldr r1, [r2, #4104] // Offset too large
75+
76+ is best reloaded as:
77+ add t1, r2, #4096
78+ ldr r0, [t1, #4]
79+ add t2, r2, #4096
80+ ldr r1, [t2, #8]
81+
82+ which post-reload CSE can simplify in most cases to eliminate the
83+ second add instruction:
84+ add t1, r2, #4096
85+ ldr r0, [t1, #4]
86+ ldr r1, [t1, #8]
87+
88+ The idea here is that we want to split out the bits of the constant
89+ as a mask, rather than as subtracting the maximum offset that the
90+ respective type of load/store used can handle.
91+
92+ When encountering negative offsets, we can still utilize it even if
93+ the overall offset is positive; sometimes this may lead to an immediate
94+ that can be constructed with fewer instructions.
95+ For example:
96+ ldr r0, [r2, #0x3FFFFC]
97+
98+ This is best reloaded as:
99+ add t1, r2, #0x400000
100+ ldr r0, [t1, #-4]
101+
102+ The trick for spotting this for a load insn with N bits of offset
103+ (i.e. bits N-1:0) is to look at bit N; if it is set, then chose a
104+ negative offset that is going to make bit N and all the bits below
105+ it become zero in the remainder part.
106+
107+ The SIGN_MAG_LOW_ADDR_BITS macro below implements this, with respect
108+ to sign-magnitude addressing (i.e. separate +- bit, or 1's complement),
109+ used in most cases of ARM load/store instructions. */
110+
111+#define SIGN_MAG_LOW_ADDR_BITS(VAL, N) \
112+ (((VAL) & ((1 << (N)) - 1)) \
113+ ? (((VAL) & ((1 << ((N) + 1)) - 1)) ^ (1 << (N))) - (1 << (N)) \
114+ : 0)
115+
116+ if (coproc_p)
117+ {
118+ low = SIGN_MAG_LOW_ADDR_BITS (val, 10);
119+
120+ /* NEON quad-word load/stores are made of two double-word accesses,
121+ so the valid index range is reduced by 8. Treat as 9-bit range if
122+ we go over it. */
123+ if (TARGET_NEON && VALID_NEON_QREG_MODE (mode) && low >= 1016)
124+ low = SIGN_MAG_LOW_ADDR_BITS (val, 9);
125+ }
126+ else if (GET_MODE_SIZE (mode) == 8)
127+ {
128+ if (TARGET_LDRD)
129+ low = (TARGET_THUMB2
130+ ? SIGN_MAG_LOW_ADDR_BITS (val, 10)
131+ : SIGN_MAG_LOW_ADDR_BITS (val, 8));
132+ else
133+ /* For pre-ARMv5TE (without ldrd), we use ldm/stm(db/da/ib)
134+ to access doublewords. The supported load/store offsets are
135+ -8, -4, and 4, which we try to produce here. */
136+ low = ((val & 0xf) ^ 0x8) - 0x8;
137+ }
138+ else if (GET_MODE_SIZE (mode) < 8)
139+ {
140+ /* NEON element load/stores do not have an offset. */
141+ if (TARGET_NEON_FP16 && mode == HFmode)
142+ return false;
143+
144+ if (TARGET_THUMB2)
145+ {
146+ /* Thumb-2 has an asymmetrical index range of (-256,4096).
147+ Try the wider 12-bit range first, and re-try if the result
148+ is out of range. */
149+ low = SIGN_MAG_LOW_ADDR_BITS (val, 12);
150+ if (low < -255)
151+ low = SIGN_MAG_LOW_ADDR_BITS (val, 8);
152+ }
153+ else
154+ {
155+ if (mode == HImode || mode == HFmode)
156+ {
157+ if (arm_arch4)
158+ low = SIGN_MAG_LOW_ADDR_BITS (val, 8);
159+ else
160+ {
161+ /* The storehi/movhi_bytes fallbacks can use only
162+ [-4094,+4094] of the full ldrb/strb index range. */
163+ low = SIGN_MAG_LOW_ADDR_BITS (val, 12);
164+ if (low == 4095 || low == -4095)
165+ return false;
166+ }
167+ }
168+ else
169+ low = SIGN_MAG_LOW_ADDR_BITS (val, 12);
170+ }
171+ }
172 else
173 return false;
174
175
176=== modified file 'gcc/config/arm/arm.md'
177--- old/gcc/config/arm/arm.md 2011-06-14 14:37:30 +0000
178+++ new/gcc/config/arm/arm.md 2011-06-27 22:14:07 +0000
179@@ -6267,7 +6267,7 @@
180 [(match_operand:DF 0 "arm_reload_memory_operand" "=o")
181 (match_operand:DF 1 "s_register_operand" "r")
182 (match_operand:SI 2 "s_register_operand" "=&r")]
183- "TARGET_32BIT"
184+ "TARGET_THUMB2"
185 "
186 {
187 enum rtx_code code = GET_CODE (XEXP (operands[0], 0));
188
diff --git a/meta-oe/recipes-devtools/gcc/gcc-4_6-branch-linaro-backports.inc b/meta-oe/recipes-devtools/gcc/gcc-4_6-branch-linaro-backports.inc
index 1b4e05a02..9ed282e4d 100644
--- a/meta-oe/recipes-devtools/gcc/gcc-4_6-branch-linaro-backports.inc
+++ b/meta-oe/recipes-devtools/gcc/gcc-4_6-branch-linaro-backports.inc
@@ -1,7 +1,6 @@
1GCC-4_6-BRANCH-LINARO-BACKPORTS = " \ 1GCC-4_6-BRANCH-LINARO-BACKPORTS = " \
2file://linaro/gcc-4.6-linaro-r106720.patch \ 2file://linaro/gcc-4.6-linaro-r106720.patch \
3file://linaro/gcc-4.6-linaro-r106723.patch \ 3file://linaro/gcc-4.6-linaro-r106723.patch \
4file://linaro/gcc-4.6-linaro-r106729.patch \
5file://linaro/gcc-4.6-linaro-r106733.patch \ 4file://linaro/gcc-4.6-linaro-r106733.patch \
6file://linaro/gcc-4.6-linaro-r106737.patch \ 5file://linaro/gcc-4.6-linaro-r106737.patch \
7file://linaro/gcc-4.6-linaro-r106738.patch \ 6file://linaro/gcc-4.6-linaro-r106738.patch \
@@ -9,7 +8,6 @@ file://linaro/gcc-4.6-linaro-r106739.patch \
9file://linaro/gcc-4.6-linaro-r106740.patch \ 8file://linaro/gcc-4.6-linaro-r106740.patch \
10file://linaro/gcc-4.6-linaro-r106741.patch \ 9file://linaro/gcc-4.6-linaro-r106741.patch \
11file://linaro/gcc-4.6-linaro-r106742.patch \ 10file://linaro/gcc-4.6-linaro-r106742.patch \
12file://linaro/gcc-4.6-linaro-r106743.patch \
13file://linaro/gcc-4.6-linaro-r106744.patch \ 11file://linaro/gcc-4.6-linaro-r106744.patch \
14file://linaro/gcc-4.6-linaro-r106746.patch \ 12file://linaro/gcc-4.6-linaro-r106746.patch \
15file://linaro/gcc-4.6-linaro-r106747.patch \ 13file://linaro/gcc-4.6-linaro-r106747.patch \
@@ -19,7 +17,6 @@ file://linaro/gcc-4.6-linaro-r106753.patch \
19file://linaro/gcc-4.6-linaro-r106754.patch \ 17file://linaro/gcc-4.6-linaro-r106754.patch \
20file://linaro/gcc-4.6-linaro-r106755.patch \ 18file://linaro/gcc-4.6-linaro-r106755.patch \
21file://linaro/gcc-4.6-linaro-r106759.patch \ 19file://linaro/gcc-4.6-linaro-r106759.patch \
22file://linaro/gcc-4.6-linaro-r106761.patch \
23file://linaro/gcc-4.6-linaro-r106762.patch \ 20file://linaro/gcc-4.6-linaro-r106762.patch \
24file://linaro/gcc-4.6-linaro-r106763.patch \ 21file://linaro/gcc-4.6-linaro-r106763.patch \
25file://linaro/gcc-4.6-linaro-r106764.patch \ 22file://linaro/gcc-4.6-linaro-r106764.patch \