diff --git a/library/compiler/alien/alien-indirect.factor b/library/compiler/alien/alien-indirect.factor index 2c0dfc6e47..3fed61c16b 100644 --- a/library/compiler/alien/alien-indirect.factor +++ b/library/compiler/alien/alien-indirect.factor @@ -22,9 +22,10 @@ M: alien-indirect-error summary empty-node 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 -- ) diff --git a/library/compiler/alien/alien-invoke.factor b/library/compiler/alien/alien-invoke.factor index 2e6f042aa8..165e29891b 100644 --- a/library/compiler/alien/alien-invoke.factor +++ b/library/compiler/alien/alien-invoke.factor @@ -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 diff --git a/library/compiler/alien/compiler.factor b/library/compiler/alien/compiler.factor index 3acc2ab325..db9dc79864 100644 --- a/library/compiler/alien/compiler.factor +++ b/library/compiler/alien/compiler.factor @@ -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 ) - [ make-prep-quot ] [ ] make infer-quot ; +: make-prep-quot ( parameters -- quot ) + [ (make-prep-quot) ] [ ] make ; diff --git a/library/compiler/pentium4/intrinsics.factor b/library/compiler/pentium4/intrinsics.factor index 311f48223d..ffa30b1938 100644 --- a/library/compiler/pentium4/intrinsics.factor +++ b/library/compiler/pentium4/intrinsics.factor @@ -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 -- ) diff --git a/library/compiler/x86/intrinsics.factor b/library/compiler/x86/intrinsics.factor index bd5f0bdfb0..bdd3427ff4 100644 --- a/library/compiler/x86/intrinsics.factor +++ b/library/compiler/x86/intrinsics.factor @@ -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 ;