X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-64-assem.S;h=b806ce1833aad98a11b54145fa489ea0c8cea822;hb=7cca1cabd213d38218a40e973b06ca11c8546396;hp=cf5b9705604895ac9e1d2d3d436982bc9a8a71fb;hpb=70c579379283da66f97906a0d62c8a5fc34e4dab;p=sbcl.git diff --git a/src/runtime/x86-64-assem.S b/src/runtime/x86-64-assem.S index cf5b970..b806ce1 100644 --- a/src/runtime/x86-64-assem.S +++ b/src/runtime/x86-64-assem.S @@ -97,7 +97,7 @@ GNAME(call_into_lisp_first_time): mov THREAD_CONTROL_STACK_START_OFFSET(%rax) ,%rsp /* don't think too hard about what happens if we get interrupted * here */ - add $THREAD_CONTROL_STACK_SIZE-8,%rsp + add $THREAD_CONTROL_STACK_SIZE-16,%rsp jmp Lstack .text @@ -174,8 +174,9 @@ Lcall: pop %rbx /* FIXME Restore the NPX state. */ - pop %rbp # c-sp + /* return value is already in rax where lisp expects it */ + leave ret .size GNAME(call_into_lisp), . - GNAME(call_into_lisp) @@ -333,6 +334,7 @@ GNAME(post_signal_tramp): popq %rbx popq %rcx popq %rax + popfl leave ret .size GNAME(post_signal_tramp),.-GNAME(post_signal_tramp)