Skip to content
Snippets Groups Projects
Commit 522ebee0 authored by rtoy's avatar rtoy
Browse files

o Fix typo.

o When PPC_FUN_HACK is not defined, the raw_addr slot of an fdefn
  object should be on a word boundary, so change undefined_tramp and
  closure_tramp to be on such a boundary.  Previously, these had a
  lowtag of 1.  With this change, can we get rid of the other parts of
  a function definition that we don't use?
parent 234432d0
No related branches found
No related tags found
No related merge requests found
...@@ -232,7 +232,7 @@ x: ...@@ -232,7 +232,7 @@ x:
/* Function is an indirect closure */ /* Function is an indirect closure */
lwz reg_CODE,CLOSURE_FUNCTION_OFFSET(reg_LEXENV) lwz reg_CODE,CLOSURE_FUNCTION_OFFSET(reg_LEXENV)
#ifdef PPC_FUN-HACK #ifdef PPC_FUN_HACK
mtctr reg_CODE mtctr reg_CODE
#else #else
addi reg_LIP,reg_CODE,6*4-type_FunctionPointer addi reg_LIP,reg_CODE,6*4-type_FunctionPointer
...@@ -397,6 +397,7 @@ lra: ...@@ -397,6 +397,7 @@ lra:
.globl _undefined_tramp .globl _undefined_tramp
.byte 0,0,0,type_FunctionHeader .byte 0,0,0,type_FunctionHeader
#ifdef PPC_FUN_HACK
/* /*
* The next 4 bytes are the encoding for a PPC jump instruction. * The next 4 bytes are the encoding for a PPC jump instruction.
* The jump should go to the twllei instruction below. * The jump should go to the twllei instruction below.
...@@ -404,11 +405,15 @@ lra: ...@@ -404,11 +405,15 @@ lra:
.byte 18<<2 .byte 18<<2
_undefined_tramp: _undefined_tramp:
.byte 0,0,24 .byte 0,0,24
#endif
.long _undefined_tramp .long _undefined_tramp
.long NIL .long NIL
.long NIL .long NIL
.long NIL .long NIL
.long NIL .long NIL
#ifndef PPC_FUN_HACK
_undefined_tramp:
#endif
twllei reg_ZERO,trap_Cerror twllei reg_ZERO,trap_Cerror
/* Number of argument bytes */ /* Number of argument bytes */
.byte 4 .byte 4
...@@ -440,14 +445,19 @@ _undefined_tramp: ...@@ -440,14 +445,19 @@ _undefined_tramp:
GFUNCDEF(xclosure_tramp) GFUNCDEF(xclosure_tramp)
.globl _closure_tramp .globl _closure_tramp
.byte 0,0,0,type_FunctionHeader .byte 0,0,0,type_FunctionHeader
#ifdef PPC_FUN_HACK
.byte 18<<2 .byte 18<<2
_closure_tramp: _closure_tramp:
.byte 0,0,24 .byte 0,0,24
#endif
.long _closure_tramp .long _closure_tramp
.long NIL .long NIL
.long NIL .long NIL
.long NIL .long NIL
.long NIL .long NIL
#ifndef PPC_FUN_HACK
_closure_tramp:
#endif
#ifdef PPC_FUN_HACK_MAYBE #ifdef PPC_FUN_HACK_MAYBE
lwz reg_LEXENV,FDEFN_FUNCTION_OFFSET(reg_CNAME) lwz reg_LEXENV,FDEFN_FUNCTION_OFFSET(reg_CNAME)
#else #else
......
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