19 lines
598 B
Diff
19 lines
598 B
Diff
|
--- trunk/gcc/config/arm/arm.c 2006/09/19 13:18:27 117055
|
||
|
+++ trunk/gcc/config/arm/arm.c 2006/09/19 13:19:24 117056
|
||
|
@@ -15415,6 +15415,15 @@
|
||
|
/* 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;
|