compiler.cfg.*: the ##alien-assembly instruction does not use a gc-map

db4
Björn Lindqvist 2014-12-08 21:59:01 +01:00 committed by John Benediktsson
parent 17d12ffaea
commit 52d3affeb8
5 changed files with 12 additions and 20 deletions

View File

@ -48,7 +48,7 @@ IN: compiler.cfg.builder.alien
: caller-parameters ( params -- reg-inputs stack-inputs )
[ abi>> ] [ parameters>> ] [ return>> ] tri
'[
'[
_ unbox-parameters
_ prepare-struct-caller struct-return-area set
(caller-parameters)
@ -71,7 +71,7 @@ M: array dlsym-valid? '[ _ dlsym ] any? ;
{
{ [ dup library-dll dll-valid? not ] [
[ library-dll dll-path ] [ dlerror>> ] bi
cfg get word>> no-such-library-error drop
cfg get word>> no-such-library-error drop
] }
{ [ 2dup library-dll dlsym-valid? not ] [
drop dlerror cfg get word>> no-such-symbol-error
@ -129,7 +129,7 @@ M: #alien-indirect emit-node ( node -- )
[ caller-return ]
bi ;
M: #alien-assembly emit-node
M: #alien-assembly emit-node ( node -- )
params>>
[
{
@ -137,7 +137,7 @@ M: #alien-assembly emit-node
[ prepare-caller-return ]
[ caller-stack-frame ]
[ quot>> ]
} cleave <gc-map> ##alien-assembly,
} cleave ##alien-assembly,
]
[ caller-return ]
bi ;
@ -160,7 +160,7 @@ M: #alien-assembly emit-node
: callee-parameters ( params -- vregs reps reg-outputs stack-outputs )
[ abi>> ] [ return>> ] [ parameters>> ] tri
'[
'[
_ prepare-struct-callee struct-return-area set
_ [ base-type ] map (callee-parameters)
] with-param-regs* ;

View File

@ -673,7 +673,7 @@ use: src/int-rep
literal: reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size gc-map ;
VREG-INSN: ##alien-assembly
literal: reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size quot gc-map ;
literal: reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size quot ;
VREG-INSN: ##callback-inputs
literal: reg-outputs stack-outputs ;
@ -834,13 +834,8 @@ UNION: conditional-branch-insn
UNION: ##read ##slot ##slot-imm ##vm-field ##alien-global ;
UNION: ##write ##set-slot ##set-slot-imm ##set-vm-field ;
UNION: alien-call-insn
##alien-invoke
##alien-indirect
##alien-assembly ;
UNION: alien-call-insn ##alien-invoke ##alien-indirect ;
! Instructions that contain subroutine calls to functions which
! can callback arbitrary Factor code
UNION: factor-call-insn
alien-call-insn ;

View File

@ -590,9 +590,6 @@ HOOK: %unbox-long-long cpu ( dst1 dst2 src func -- )
HOOK: %local-allot cpu ( dst size align offset -- )
! Call a function to convert a value into a tagged pointer,
! possibly allocating a bignum, float, or alien instance,
! which is then pushed on the data stack
HOOK: %box cpu ( dst src func rep gc-map -- )
HOOK: %box-long-long cpu ( dst src1 src2 func gc-map -- )
@ -605,7 +602,7 @@ HOOK: %alien-invoke cpu ( reg-inputs stack-inputs reg-outputs dead-outputs clean
HOOK: %alien-indirect cpu ( src reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size gc-map -- )
HOOK: %alien-assembly cpu ( reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size quot gc-map -- )
HOOK: %alien-assembly cpu ( reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size quot -- )
HOOK: %callback-inputs cpu ( reg-outputs stack-outputs -- )

View File

@ -491,8 +491,8 @@ M:: ppc %alien-indirect ( src reg-inputs stack-inputs
M: ppc %alien-assembly ( reg-inputs stack-inputs reg-outputs
dead-outputs cleanup stack-size quot
gc-map -- )
'[ _ _ gc-map set call( -- ) ] emit-alien-insn ;
-- )
'[ _ call( -- ) ] emit-alien-insn ;
M: ppc %callback-inputs ( reg-outputs stack-outputs -- )
[ [ first3 load-reg-param ] each ]

View File

@ -665,8 +665,8 @@ M:: x86 %alien-indirect ( src reg-inputs stack-inputs reg-outputs dead-outputs c
gc-map gc-map-here
] emit-alien-insn ;
M: x86 %alien-assembly ( reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size quot gc-map -- )
'[ _ _ gc-map set call( -- ) ] emit-alien-insn ;
M: x86 %alien-assembly ( reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size quot -- )
'[ _ call( -- ) ] emit-alien-insn ;
HOOK: %begin-callback cpu ( -- )