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