]> gitweb.factorcode.org Git - factor.git/commitdiff
vm passed in primitives as arg0 for x86.64
authorPhil Dawes <phil@phildawes.net>
Mon, 7 Sep 2009 06:15:10 +0000 (07:15 +0100)
committerPhil Dawes <phil@phildawes.net>
Wed, 16 Sep 2009 07:22:17 +0000 (08:22 +0100)
basis/cpu/x86/64/bootstrap.factor
vm/cpu-x86.64.S

index 28309e7d978106d16d64425a2ad13c4fa51ba138..aa7a5dcd67597cf608e0c251cc2f37f2d782c0ef 100644 (file)
@@ -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
index 4d5c70616f325a84a98ace40b032480f553ab721..704cebe804f01f2f3f7796a6305cc9cfc6656ab6 100644 (file)
@@ -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