! need a parameter here.
! See the comment for M\ x86.32 stack-cleanup in cpu.x86.32
- HEX: ffff RET f rc-absolute-2 rel-untagged
+ 0xffff RET f rc-absolute-2 rel-untagged
] callback-stub jit-define
-[
- ! Load word
- temp0 0 MOV f rc-absolute-cell rel-literal
- ! Bump profiling counter
- temp0 profile-count-offset [+] 1 tag-fixnum ADD
- ! Load word->code
- temp0 temp0 word-code-offset [+] MOV
- ! Compute word entry point
- temp0 compiled-header-size ADD
- ! Jump to entry point
- temp0 JMP
-] jit-profiling jit-define
-
[
! load literal
temp0 0 MOV f rc-absolute-cell rel-literal
temp0 vm-reg vm-signal-handler-addr-offset [+] MOV
temp0 CALL
frame-size jit-signal-handler-epilog
+ 0 RET
] \ signal-handler define-sub-primitive
: leaf-frame-size ( -- n ) 4 bootstrap-cells ;
temp0 CALL
frame-size jit-signal-handler-epilog
! Pop the fake leaf frame along with our return address
- leaf-frame-size cell - RET
+ leaf-frame-size bootstrap-cell - RET
] \ leaf-signal-handler define-sub-primitive
[| |
! Load a value from a stack position
[
- temp1 ds-reg HEX: 7f [+] MOV f rc-absolute-1 rel-untagged
+ temp1 ds-reg 0x7f [+] MOV f rc-absolute-1 rel-untagged
] pic-load jit-define
[ temp1 tag-mask get AND ] pic-tag jit-define
] pic-tuple jit-define
[
- temp1 HEX: 7f CMP f rc-absolute-1 rel-untagged
+ temp1 0x7f CMP f rc-absolute-1 rel-untagged
] pic-check-tag jit-define
[ 0 JE f rc-relative rel-word ] pic-hit jit-define