compiler.cfg.builder.alien: simpler caller-stack-frame word

char-rename
Björn Lindqvist 2016-08-09 22:50:16 +02:00
parent dbd716cc99
commit 7ab3ebfdd5
2 changed files with 9 additions and 4 deletions

View File

@ -66,6 +66,12 @@ cpu x86.64? [
] cfg-unit-test ] cfg-unit-test
] when ] when
! caller-stack-cleanup
{ 0 } [
alien-node-params new long >>return cdecl >>abi 25
caller-stack-cleanup
] unit-test
! prepare-caller-return ! prepare-caller-return
${ ${
cpu x86.32? { { 1 int-rep EAX } } { { 1 int-rep RAX } } ? cpu x86.32? { { 1 int-rep EAX } } { { 1 int-rep RAX } } ?

View File

@ -54,9 +54,8 @@ IN: compiler.cfg.builder.alien
: prepare-caller-return ( params -- reg-outputs ) : prepare-caller-return ( params -- reg-outputs )
return>> [ { } ] [ base-type load-return ] if-void ; return>> [ { } ] [ base-type load-return ] if-void ;
: caller-stack-frame ( params -- cleanup stack-size ) : caller-stack-cleanup ( params stack-size -- cleanup )
[ stack-params get ] dip [ return>> ] [ abi>> ] bi stack-cleanup swap [ return>> ] [ abi>> ] bi stack-cleanup ;
stack-params get ;
: check-dlsym ( symbol library -- ) : check-dlsym ( symbol library -- )
{ {
@ -91,7 +90,7 @@ IN: compiler.cfg.builder.alien
[ varargs?>> ] [ varargs?>> ]
[ caller-parameters ] [ caller-parameters ]
[ prepare-caller-return { } ] [ prepare-caller-return { } ]
[ caller-stack-frame ] [ stack-params get [ caller-stack-cleanup ] keep ]
} cleave ; } cleave ;
M: #alien-invoke emit-node ( block node -- block' ) M: #alien-invoke emit-node ( block node -- block' )