X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-assem.S;h=c16b3ef9f790ba34fdbe43b64a1720ee653af138;hb=5e92e9ed61903658015c2a75c79a32ad41dbd29d;hp=c145d53645ea92232d889827ab8a8cd2c1739a0e;hpb=fb8533122551bbb7aea669f40bc91c1211809b58;p=sbcl.git diff --git a/src/runtime/x86-assem.S b/src/runtime/x86-assem.S index c145d53..c16b3ef 100644 --- a/src/runtime/x86-assem.S +++ b/src/runtime/x86-assem.S @@ -14,8 +14,8 @@ */ #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,8 +802,9 @@ 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 */ - popl %ebp + popal /* restore registers */ + popfl + leave ret .size GNAME(post_signal_tramp),.-GNAME(post_signal_tramp)