Skip to content
Snippets Groups Projects
Commit 54a59eb6 authored by wlott's avatar wlott
Browse files

Changed call_into_lisp to use $LIP when computing where to jump to so that

the function can correctly compute $CODE.  Wrote undefined_tramp and
closure_tramp.
parent 61ccecb4
No related branches found
No related tags found
No related merge requests found
/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/mips-assem.s,v 1.8 1990/07/23 19:43:45 wlott Exp $ */
/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/mips-assem.s,v 1.9 1990/09/21 05:53:39 wlott Exp $ */
#include <machine/regdef.h>
#include "lisp.h"
......@@ -117,8 +117,10 @@ call_into_lisp:
lw CODE, 4-1(LEXENV)
/* Jump into lisp land. */
addu $2, CODE, 6*4 - type_FunctionPointer
j $2
.set noat
addu LIP, CODE, 6*4 - type_FunctionPointer
j LIP
.set at
.set noreorder
......@@ -280,3 +282,35 @@ call_into_c:
j a0
.end call_into_c
/*
* The undefined-function trampoline.
*/
.text
.globl undefined_tramp
.ent undefined_tramp
undefined_tramp:
break 10
.byte 255
.byte 4
.byte 23
.byte 254
.byte 208
.byte 1
.align 2
.end undefined_tramp
/*
* The closure trampoline.
*/
.text
.globl closure_tramp
.ent closure_tramp
closure_tramp:
lw LEXENV, SYMBOL_FUNCTION_OFFSET(CNAME)
lw L0, CLOSURE_FUNCTION_OFFSET(LEXENV)
.set noat
add LIP, L0, FUNCTION_HEADER_CODE_OFFSET
j LIP
.set at
.end closure_tramp
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