diff --git a/asm/asm-impl.c b/asm/asm-impl.c index a218682a2ed3226485d6fcb3e9f2d9a0baddd78e..8c9b2fb3e6de31c3ad24fb8b89f93c84e518435c 100644 --- a/asm/asm-impl.c +++ b/asm/asm-impl.c @@ -61,7 +61,8 @@ int asm_setjmp(asm_jmp_buf env) { "movq %%r15, %[r15] \t\n" "movq %%rbx, %[rbx] \t\n" "movq %%rbp, %[rbp] \t\n" - "movq %%rsp, %[rsp] \t\n" + "lea 8(%%rsp), %%rax" + "movq %%rax, %[rsp] \t\n" "xor %%eax, %%eax \t\n" :[pc] "=m" (env[JB_PC]), [r12] "=m" (env[JB_R12]), [r13] "=m" (env[JB_R13]), [r14] "=m" (env[JB_R14]), [r15] "=m" (env[JB_R15]), [rbx] "=m" (env[JB_RBX]), [rbp] "=m" (env[JB_RBP]) , [rsp] "=m" (env[JB_RSP])