| 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; |
| 19 | |