diff --git a/lisp/x86-assem.S b/lisp/x86-assem.S index f5107b9a7656bf65260ece7a242144ab28efb493..8e3819c5b8a25b1f81b4dc1002327cc03efe783a 100644 --- a/lisp/x86-assem.S +++ b/lisp/x86-assem.S @@ -1,6 +1,6 @@ ### x86-assem.S -*- Mode: Asm; -*- /** - * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-assem.S,v 1.31 2008/12/17 12:42:30 rtoy Exp $ + * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-assem.S,v 1.32 2008/12/24 04:36:40 rtoy Rel $ * * Authors: Paul F. Werkowski <pw@snoopy.mv.com> * Douglas T. Crosher @@ -272,21 +272,10 @@ ENDFUNC(closure_tramp) * Function-end breakpoint magic. */ FUNCDEF(function_end_breakpoint_guts) - /* Multiple Value return */ -#ifndef DARWIN - jmp multiple_value_return -#else - /* - * Darwin's assembler is too stupid to make the above - * instruction a two-byte instruction and I (rtoy) am too - * stupid to figure out how to get Darwin's assembler - * to do it either. Hence hardwire - * the instruction explicitly. This jmp instruction MUST be a two-byte - * instruction for this to work correctly! - */ - .byte 0xeb - .byte 0x14 -#endif + /* Multiple Value return + This MUST be a two-byte instruction. If it isn't tracing is + majorly broken. */ + jmp 1f /* Single value return: The eventual return will now use the multiple values return convention but with a return values count of one. */ @@ -296,6 +285,7 @@ FUNCDEF(function_end_breakpoint_guts) movl $NIL,%edi # Default second value movl $NIL,%esi # Default third value +1: multiple_value_return: .globl GNAME(function_end_breakpoint_trap)