vm passed in primitives as arg0 for x86.64
parent
480a15c2c3
commit
8a65f35c31
|
@ -21,9 +21,7 @@ IN: bootstrap.x86
|
|||
: rex-length ( -- n ) 1 ;
|
||||
|
||||
[
|
||||
! HACK: stash vm pointer above the ds stack
|
||||
temp0 0 MOV rc-absolute-cell rt-vm jit-rel
|
||||
ds-reg bootstrap-cell [+] temp0 MOV
|
||||
|
||||
! load stack_chain
|
||||
temp0 0 MOV rc-absolute-cell rt-stack-chain jit-rel
|
||||
temp0 temp0 [] MOV
|
||||
|
@ -31,6 +29,8 @@ IN: bootstrap.x86
|
|||
temp0 [] stack-reg MOV
|
||||
! load XT
|
||||
temp1 0 MOV rc-absolute-cell rt-primitive jit-rel
|
||||
! load vm ptr
|
||||
arg 0 MOV rc-absolute-cell rt-vm jit-rel
|
||||
! go
|
||||
temp1 JMP
|
||||
] jit-primitive jit-define
|
||||
|
|
|
@ -79,10 +79,11 @@ DEF(long long,read_timestamp_counter,(void)):
|
|||
or %rdx,%rax
|
||||
ret
|
||||
|
||||
DEF(void,primitive_inline_cache_miss,(void)):
|
||||
DEF(void,primitive_inline_cache_miss,(void *vm)):
|
||||
mov (%rsp),%rbx
|
||||
DEF(void,primitive_inline_cache_miss_tail,(void)):
|
||||
DEF(void,primitive_inline_cache_miss_tail,(void *vm)):
|
||||
sub $STACK_PADDING,%rsp
|
||||
mov ARG0,ARG1
|
||||
mov %rbx,ARG0
|
||||
call MANGLE(inline_cache_miss)
|
||||
add $STACK_PADDING,%rsp
|
||||
|
|
Loading…
Reference in New Issue