X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fhppa-assem.S;h=97ada0c9bae521eb7e99bb317248013094d653c5;hb=c8617f57d0413beb2890e94dabe227cef9c5ddad;hp=fd2068f5314513248668bd767e6c4f384f52ea09;hpb=6eab504b0bbed5d07501e5bf12b87a3654b333db;p=sbcl.git diff --git a/src/runtime/hppa-assem.S b/src/runtime/hppa-assem.S index fd2068f..97ada0c 100644 --- a/src/runtime/hppa-assem.S +++ b/src/runtime/hppa-assem.S @@ -108,12 +108,16 @@ call_into_lisp: /* Indirect the closure */ ldw CLOSURE_FUN_OFFSET(0,reg_LEXENV),reg_CODE - addi 6*4-FUN_POINTER_LOWTAG,reg_CODE,reg_LIP + addi SIMPLE_FUN_CODE_OFFSET,reg_CODE,reg_LIP - /* And into lisp we go. */ - .export break_here -break_here: - be,n 0(%sr5,reg_LIP) +#ifdef LISP_FEATURE_HPUX + /* Get the stub address, ie assembly-routine return-from-lisp */ + addil L%return_from_lisp_stub-$global$,%dp + ldw R%return_from_lisp_stub-$global$(0,%r1),reg_NL0 + be,n 0(%sr5,reg_NL0) +#else + be,n 0(%sr5,reg_NL0) +#endif break 0,0 @@ -432,10 +436,15 @@ SingleStepTraps: there's a break 0,0 in the new version here!!! */ +/* + * For an explanation of the magic involved in function-end + * breakpoints, see the implementation in ppc-assem.S. + */ + .align 8 .export fun_end_breakpoint_guts fun_end_breakpoint_guts: - .word RETURN_PC_HEADER_WIDETAG + .word RETURN_PC_HEADER_WIDETAG + 0x800 /* multiple value return point -- just jump to trap. */ b,n fun_end_breakpoint_trap /* single value return point -- convert to multiple w/ n=1 */