diff options
Diffstat (limited to 'meta/packages/gcc/gcc-4.1.2/fix-ICE-in-arm_unwind_emit_set.diff')
-rw-r--r-- | meta/packages/gcc/gcc-4.1.2/fix-ICE-in-arm_unwind_emit_set.diff | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/meta/packages/gcc/gcc-4.1.2/fix-ICE-in-arm_unwind_emit_set.diff b/meta/packages/gcc/gcc-4.1.2/fix-ICE-in-arm_unwind_emit_set.diff new file mode 100644 index 0000000000..568e15abff --- /dev/null +++ b/meta/packages/gcc/gcc-4.1.2/fix-ICE-in-arm_unwind_emit_set.diff | |||
@@ -0,0 +1,18 @@ | |||
1 | --- trunk/gcc/config/arm/arm.c 2006/09/19 13:18:27 117055 | ||
2 | +++ trunk/gcc/config/arm/arm.c 2006/09/19 13:19:24 117056 | ||
3 | @@ -15415,6 +15415,15 @@ | ||
4 | /* Move from sp to reg. */ | ||
5 | asm_fprintf (asm_out_file, "\t.movsp %r\n", REGNO (e0)); | ||
6 | } | ||
7 | + else if (GET_CODE (e1) == PLUS | ||
8 | + && GET_CODE (XEXP (e1, 0)) == REG | ||
9 | + && REGNO (XEXP (e1, 0)) == SP_REGNUM | ||
10 | + && GET_CODE (XEXP (e1, 1)) == CONST_INT) | ||
11 | + { | ||
12 | + /* Set reg to offset from sp. */ | ||
13 | + asm_fprintf (asm_out_file, "\t.movsp %r, #%d\n", | ||
14 | + REGNO (e0), (int)INTVAL(XEXP (e1, 1))); | ||
15 | + } | ||
16 | else | ||
17 | abort (); | ||
18 | break; | ||