Index: gcc/config/arm/arm.c =================================================================== --- gcc/config/arm/arm.c +++ gcc/config/arm/arm.c @@ -15371,6 +15371,15 @@ arm_unwind_emit_set (FILE * asm_out_file /* Move from sp to reg. */ asm_fprintf (asm_out_file, "\t.movsp %r\n", REGNO (e0)); } + else if (GET_CODE (e1) == PLUS + && GET_CODE (XEXP (e1, 0)) == REG + && REGNO (XEXP (e1, 0)) == SP_REGNUM + && GET_CODE (XEXP (e1, 1)) == CONST_INT) + { + /* Set reg to offset from sp. */ + asm_fprintf (asm_out_file, "\t.movsp %r, #%d\n", + REGNO (e0), (int)INTVAL(XEXP (e1, 1))); + } else abort (); break;