summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/nlraarch64.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/py/nlraarch64.c b/py/nlraarch64.c
index 1295351cbe..fcc318f2dc 100644
--- a/py/nlraarch64.c
+++ b/py/nlraarch64.c
@@ -62,13 +62,14 @@ NORETURN void nlr_jump(void *val) {
MP_STATIC_ASSERT(offsetof(nlr_buf_t, regs) == 16); // asm assumes it
__asm volatile (
- "ldr x29, [%0, #112]\n"
- "ldp x27, x28, [%0, #96]\n"
- "ldp x25, x26, [%0, #80]\n"
- "ldp x23, x24, [%0, #64]\n"
- "ldp x21, x22, [%0, #48]\n"
- "ldp x19, x20, [%0, #32]\n"
- "ldp lr, x9, [%0, #16]\n" // 16 == offsetof(nlr_buf_t, regs)
+ "mov x0, %0 \n"
+ "ldr x29, [x0, #112]\n"
+ "ldp x27, x28, [x0, #96]\n"
+ "ldp x25, x26, [x0, #80]\n"
+ "ldp x23, x24, [x0, #64]\n"
+ "ldp x21, x22, [x0, #48]\n"
+ "ldp x19, x20, [x0, #32]\n"
+ "ldp lr, x9, [x0, #16]\n" // 16 == offsetof(nlr_buf_t, regs)
"mov sp, x9 \n"
"mov x0, #1 \n" // non-local return
"ret \n"