X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-64-assem.S;h=5f1ff8b2dc04d27ceb3851b70d208b5d0a409b7f;hb=2a03fda8299baea66cb9a6955d414dcc27af5ac9;hp=42d21da5e7d5cd33aa386deb92058f95a04b5c58;hpb=9a19ce460a70a6c1de36095b3e2621116b91cc80;p=sbcl.git diff --git a/src/runtime/x86-64-assem.S b/src/runtime/x86-64-assem.S index 42d21da..5f1ff8b 100644 --- a/src/runtime/x86-64-assem.S +++ b/src/runtime/x86-64-assem.S @@ -105,9 +105,6 @@ .globl GNAME(call_into_c) TYPE(GNAME(call_into_c)) GNAME(call_into_c): - /* ABI requires that the direction flag be clear on function - * entry and exit. */ - cld push %rbp # Save old frame pointer. mov %rsp,%rbp # Establish new frame. @@ -146,10 +143,7 @@ GNAME(call_into_lisp_first_time): #else movq GNAME(all_threads),%rax #endif - 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)-16,%rsp + mov THREAD_CONTROL_STACK_END_OFFSET(%rax) ,%rsp jmp Lstack .text @@ -241,10 +235,6 @@ LsingleValue: pop %r12 pop %rbx - /* ABI requires that the direction flag be clear on function - * entry and exit. */ - cld - /* FIXME Restore the NPX state. */ /* return value is already in rax where lisp expects it */ @@ -258,8 +248,7 @@ LsingleValue: TYPE(GNAME(fpu_save)) .align 2,0x90 GNAME(fpu_save): - mov 4(%rsp),%rax - fnsave (%rax) # Save the NPX state. (resets NPX) + fnsave (%rdi) # Save the NPX state. (resets NPX) ret SIZE(GNAME(fpu_save)) @@ -267,8 +256,7 @@ GNAME(fpu_save): TYPE(GNAME(fpu_restore)) .align 2,0x90 GNAME(fpu_restore): - mov 4(%rsp),%rax - frstor (%rax) # Restore the NPX state. + frstor (%rdi) # Restore the NPX state. ret SIZE(GNAME(fpu_restore))