1.0.33.22: fix WITH-MUTEX docstring
[sbcl.git] / src / runtime / x86-64-assem.S
index 1b4ac54..ac42010 100644 (file)
@@ -25,7 +25,7 @@
 #include "genesis/thread.h"
        
 /* Minimize conditionalization for different OS naming schemes. */
-#if defined __linux__  || defined __FreeBSD__ || defined __OpenBSD__ || defined __sun
+#if defined __linux__  || defined __FreeBSD__ || defined __OpenBSD__ || defined __NetBSD__ || defined __sun
 #define GNAME(var) var
 #else
 #define GNAME(var) _##var
@@ -33,7 +33,7 @@
 
 /* Get the right type of alignment. Linux, FreeBSD and OpenBSD
  * want alignment in bytes. */
-#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun)
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined __NetBSD__ || defined(__sun)
 #define align_4byte    4
 #define align_8byte    8
 #define align_16byte   16
@@ -209,10 +209,10 @@ Ldone:
        xor     %rbx,%rbx       # available
 
        /* Alloc new frame. */
-       mov     %rsp,%rbx       # The current sp marks start of new frame.
-       push    %rbp            # fp in save location S0
-       sub     $16,%rsp        # Ensure 3 slots are allocated, one above.
-       mov     %rbx,%rbp       # Switch to new frame.
+       push    %rbp            # Dummy for return address
+       push    %rbp            # fp in save location S1
+       mov     %rsp,%rbp       # The current sp marks start of new frame.
+       sub     $8,%rsp         # Ensure 3 slots are allocated, two above.
 
 Lcall:
        call    *CLOSURE_FUN_OFFSET(%rax)
@@ -235,7 +235,7 @@ LsingleValue:
 
 /* FIXME Restore the NPX state. */
 
-       /* return value is already in rax where lisp expects it */
+       mov     %rdx,%rax       # c-val
        leave
        ret
        SIZE(GNAME(call_into_lisp))