1a3e66ed1f6f0a61fa7b2958afb02ea9b690ba69
[openwrt.git] / toolchain / gcc / patches / 4.1.2 / 802-fix-ICE-in-arm_unwind_emit_set.patch
1 --- a/gcc/config/arm/arm.c
2 +++ b/gcc/config/arm/arm.c
3 @@ -15371,6 +15371,15 @@ arm_unwind_emit_set (FILE * asm_out_file
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;