Skip to content
Snippets Groups Projects
Commit 424c9964 authored by rtoy's avatar rtoy
Browse files

Fix tracing on Darwin. The jmp instruction at the beginning of

function_end_breakpoint_guts needs to be two bytes long but the
assembler was using a five byte version.
parent 629ad2c0
No related branches found
No related tags found
No related merge requests found
### x86-assem.S -*- Mode: Asm; -*- ### x86-assem.S -*- Mode: Asm; -*-
/** /**
* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-assem.S,v 1.30 2008/11/12 15:04:25 rtoy Exp $ * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-assem.S,v 1.31 2008/12/17 12:42:30 rtoy Exp $
* *
* Authors: Paul F. Werkowski <pw@snoopy.mv.com> * Authors: Paul F. Werkowski <pw@snoopy.mv.com>
* Douglas T. Crosher * Douglas T. Crosher
...@@ -273,7 +273,20 @@ ENDFUNC(closure_tramp) ...@@ -273,7 +273,20 @@ ENDFUNC(closure_tramp)
*/ */
FUNCDEF(function_end_breakpoint_guts) FUNCDEF(function_end_breakpoint_guts)
/* Multiple Value return */ /* Multiple Value return */
#ifndef DARWIN
jmp multiple_value_return 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
/* Single value return: The eventual return will now use the /* Single value return: The eventual return will now use the
multiple values return convention but with a return values multiple values return convention but with a return values
count of one. */ count of one. */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment