Fix ARCH_STORE_REGS on arm to save r0->r12 properly
authorGeoff Norton <grompf@sublimeintervention.com>
Wed, 16 Feb 2011 21:10:11 +0000 (16:10 -0500)
committerGeoff Norton <grompf@sublimeintervention.com>
Wed, 16 Feb 2011 21:10:11 +0000 (16:10 -0500)
mono/metadata/sgen-archdep.h

index 5ff4cec25c392c284a9f9fa11714475045650b14..cde4ef5d2e8ba593c56b9ba04cd93aefe54d771c 100644 (file)
 #define ARCH_NUM_REGS 14
 #define ARCH_STORE_REGS(ptr)                           \
        __asm__ __volatile__(                           \
-               "ldr r12, %0\n"                         \
-               "push {r0}\n"                           \
-               "push {r12}\n"                          \
-               "stmia r12!, {r0-r11}\n"                \
-               "pop {r0}\n"                            \
-               "stmia r12!, {r0, lr}\n"                \
+               "push {lr}\n"                           \
+               "ldr lr, %0\n"                          \
+               "stmia lr!, {r0-r12}\n"                 \
                "mov r12, r0\n"                         \
-               "pop {r0}\n"                            \
+               "pop {lr}\n"                            \
                :                                       \
                : "m" (ptr)                             \
        )