summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99451.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99451.patch')
-rw-r--r--meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99451.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99451.patch b/meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99451.patch
new file mode 100644
index 000000000..d87c312d0
--- /dev/null
+++ b/meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99451.patch
@@ -0,0 +1,45 @@
12010-12-22 Ulrich Weigand <uweigand@de.ibm.com>
2
3 LP: #693425
4 Backport from mainline:
5
6 gcc/
7 * config/spu/spu.md ("mov<mode>"): Use nonimmediate_operand
8 predicate for destination operand.
9 * config/spu/spu.c (spu_expand_mov): If move destination is an
10 invalid subreg, perform move in the subreg's inner mode instead.
11
12=== modified file 'gcc/config/spu/spu.c'
13--- old/gcc/config/spu/spu.c 2010-08-04 09:53:04 +0000
14+++ new/gcc/config/spu/spu.c 2010-12-22 15:20:44 +0000
15@@ -4572,7 +4572,13 @@
16 spu_expand_mov (rtx * ops, enum machine_mode mode)
17 {
18 if (GET_CODE (ops[0]) == SUBREG && !valid_subreg (ops[0]))
19- abort ();
20+ {
21+ /* Perform the move in the destination SUBREG's inner mode. */
22+ ops[0] = SUBREG_REG (ops[0]);
23+ mode = GET_MODE (ops[0]);
24+ ops[1] = gen_lowpart_common (mode, ops[1]);
25+ gcc_assert (ops[1]);
26+ }
27
28 if (GET_CODE (ops[1]) == SUBREG && !valid_subreg (ops[1]))
29 {
30
31=== modified file 'gcc/config/spu/spu.md'
32--- old/gcc/config/spu/spu.md 2009-05-23 01:28:14 +0000
33+++ new/gcc/config/spu/spu.md 2010-12-22 15:20:44 +0000
34@@ -269,8 +269,8 @@
35 ;; mov
36
37 (define_expand "mov<mode>"
38- [(set (match_operand:ALL 0 "spu_nonimm_operand" "=r,r,r,m")
39- (match_operand:ALL 1 "general_operand" "r,i,m,r"))]
40+ [(set (match_operand:ALL 0 "nonimmediate_operand" "")
41+ (match_operand:ALL 1 "general_operand" ""))]
42 ""
43 {
44 if (spu_expand_mov(operands, <MODE>mode))
45