diff options
Diffstat (limited to 'meta/packages/gcc/gcc-4.3.1/fix-ICE-in-arm_unwind_emit_set.diff')
-rw-r--r-- | meta/packages/gcc/gcc-4.3.1/fix-ICE-in-arm_unwind_emit_set.diff | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/meta/packages/gcc/gcc-4.3.1/fix-ICE-in-arm_unwind_emit_set.diff b/meta/packages/gcc/gcc-4.3.1/fix-ICE-in-arm_unwind_emit_set.diff new file mode 100644 index 0000000000..b8a147d3d9 --- /dev/null +++ b/meta/packages/gcc/gcc-4.3.1/fix-ICE-in-arm_unwind_emit_set.diff | |||
@@ -0,0 +1,28 @@ | |||
1 | --- /tmp/arm.c 2008-03-17 14:24:39.590464969 +0100 | ||
2 | +++ gcc-4.3.0/gcc/config/arm/arm.c 2008-03-17 14:12:21.614701982 +0100 | ||
3 | @@ -15959,6 +15959,9 @@ | ||
4 | int regno; | ||
5 | int lo_mask = mask & 0xFF; | ||
6 | int pushed_words = 0; | ||
7 | + rtx e0; | ||
8 | + rtx e1; | ||
9 | + unsigned reg; | ||
10 | |||
11 | gcc_assert (mask); | ||
12 | |||
13 | @@ -16025,6 +16028,15 @@ | ||
14 | |||
15 | return; | ||
16 | } | ||
17 | + else if (GET_CODE (e1) == PLUS | ||
18 | + && GET_CODE (XEXP (e1, 0)) == REG | ||
19 | + && REGNO (XEXP (e1, 0)) == SP_REGNUM | ||
20 | + && GET_CODE (XEXP (e1, 1)) == CONST_INT) | ||
21 | + { | ||
22 | + /* Set reg to offset from sp. */ | ||
23 | + asm_fprintf (asm_out_file, "\t.movsp %r, #%d\n", | ||
24 | + REGNO (e0), (int)INTVAL(XEXP (e1, 1))); | ||
25 | + } | ||
26 | else | ||
27 | { | ||
28 | if (mask & 0xFF) | ||