]> gitweb.factorcode.org Git - factor.git/commitdiff
x86 fixes, and fix alien-indirect for c-type-prep stuff
authorslava <slava@factorcode.org>
Sat, 4 Nov 2006 00:47:24 +0000 (00:47 +0000)
committerslava <slava@factorcode.org>
Sat, 4 Nov 2006 00:47:24 +0000 (00:47 +0000)
library/compiler/alien/alien-indirect.factor
library/compiler/alien/alien-invoke.factor
library/compiler/alien/compiler.factor
library/compiler/pentium4/intrinsics.factor
library/compiler/x86/intrinsics.factor

index 2c0dfc6e4794dd92c9ae3d97c81b2968ee1418ce..3fed61c16bb1669eccd79011ce874c17cae99263 100644 (file)
@@ -22,9 +22,10 @@ M: alien-indirect-error summary
     empty-node <alien-indirect>
     pop-literal nip over set-alien-indirect-abi
     pop-literal nip over set-alien-indirect-parameters
-    pop-literal nip swap set-alien-indirect-return
-    dup alien-indirect-parameters prep-alien-parameters
-    dup node,
+    pop-literal nip over set-alien-indirect-return
+    dup alien-indirect-parameters
+    make-prep-quot 1 make-dip infer-quot
+    node,
 ] "infer" set-word-prop
 
 : generate-indirect-cleanup ( node -- )
index 2e6f042aa81877863f804257cb35e3841ea52687..165e29891b7979f67173786a9d56bbc79ac90721 100644 (file)
@@ -37,7 +37,7 @@ M: alien-invoke-error summary
     pop-literal nip over set-alien-invoke-function
     pop-literal nip over set-alien-invoke-library
     pop-literal nip over set-alien-invoke-return
-    dup alien-invoke-parameters prep-alien-parameters
+    dup alien-invoke-parameters make-prep-quot infer-quot
     dup ensure-dlsym
     dup node,
     alien-invoke-stack
index 3acc2ab325d265afe4b441c341a2479de7904cfc..db9dc79864dbe4b26a3277dd7e05c86198aae03b 100644 (file)
@@ -59,13 +59,13 @@ inference ;
 : if-void ( type true false -- )
     pick "void" = [ drop nip call ] [ nip call ] if ; inline
 
-: make-prep-quot ( parameters -- )
+: (make-prep-quot) ( parameters -- )
     dup empty? [
         drop
     ] [
         unclip c-type c-type-prep %
-        \ >r , make-prep-quot \ r> ,
+        \ >r , (make-prep-quot) \ r> ,
     ] if ;
 
-: prep-alien-parameters ( parameters -- quot )
-    [ <reversed> make-prep-quot ] [ ] make infer-quot ;
+: make-prep-quot ( parameters -- quot )
+    [ <reversed> (make-prep-quot) ] [ ] make ;
index 311f48223da5d58cf2516f0bb59d500979a854b2..ffa30b193877a7af6a43410634d15b7397f39d7a 100644 (file)
@@ -9,10 +9,10 @@ M: float-regs (%peek)
     fp-scratch swap %move-int>int
     fp-scratch %move-int>float ;
 
-: load-zone-ptr ( vreg -- )
+: load-zone-ptr ( reg -- )
     #! Load pointer to start of zone array
-    dup "generations" f [ dlsym MOV ] 2keep
-    rel-absolute-cell rel-dlsym
+    0 MOV
+    dup "generations" f rel-absolute-cell rel-dlsym
     dup [] MOV ;
 
 : load-allot-ptr ( vreg -- )
index bd5f0bdfb0bd53e7ba4216fc233fdee171002289..bdd3427ff489a7f5e8b7f2e2bbcb46a7128d2731 100644 (file)
@@ -265,8 +265,8 @@ IN: compiler
 
 ! User environment
 : %userenv ( -- )
-    "x" operand "userenv" f [ dlsym MOV ] 2keep
-    rel-absolute-cell rel-dlsym
+    "x" operand 0 MOV
+    "userenv" f rel-absolute-cell rel-dlsym
     "n" operand fixnum>slot@
     "n" operand "x" operand ADD ;