0.9.5.76:
[sbcl.git] / src / runtime / x86-assem.S
index 3dfb53b..c16b3ef 100644 (file)
@@ -14,8 +14,8 @@
  */
 \f
 #define LANGUAGE_ASSEMBLY
-#include "validate.h"
 #include "sbcl.h"
+#include "validate.h"
 #include "genesis/closure.h"
 #include "genesis/fdefn.h"
 #include "genesis/static-symbols.h"
@@ -29,7 +29,7 @@
  * turns out not to matter, perhaps it's just clutter we could get
  * rid of? -- WHN 2004-04-18)
  */
-#if defined __linux__  || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__
+#if defined __linux__  || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined __sun
 #define GNAME(var) var
 #else
 #define GNAME(var) _##var
@@ -44,7 +44,7 @@
  * matter any more, perhaps it's just clutter we could get
  * rid of? -- WHN 2004-04-18)
  */
-#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__sun)
 #define align_4byte    4
 #define align_8byte    8
 #define align_16byte   16
@@ -286,6 +286,7 @@ GNAME(fpu_restore):
        .align  align_4byte,0x90
        .global GNAME(undefined_tramp)
        .type   GNAME(undefined_tramp),@function
+        .byte   0, 0, 0, SIMPLE_FUN_HEADER_WIDETAG
 GNAME(undefined_tramp):
        int3
        .byte   trap_Error
@@ -302,6 +303,7 @@ GNAME(undefined_tramp):
        .align  align_4byte,0x90
        .global GNAME(closure_tramp)
        .type   GNAME(closure_tramp),@function
+        .byte   0, 0, 0, SIMPLE_FUN_HEADER_WIDETAG
 GNAME(closure_tramp):
        movl    FDEFN_FUN_OFFSET(%eax),%eax
        /* FIXME: The '*' after "jmp" in the next line is from PVE's
@@ -800,7 +802,8 @@ GNAME(post_signal_tramp):
         * doesn't exist.  This is where call_into_lisp returns when called 
         * using return_to_lisp_function */
        addl $12,%esp   /* clear call_into_lisp args from stack */
-       popa            /* restore registers */
+       popal           /* restore registers */
+        popfl
        leave
        ret
        .size GNAME(post_signal_tramp),.-GNAME(post_signal_tramp)