compiler.cfg.builder.alien.*: merge of with-param-regs and with-param-regs*

char-rename
Björn Lindqvist 2016-08-01 20:56:21 +02:00
parent 06319ac58d
commit 8aef16bed2
2 changed files with 6 additions and 7 deletions

View File

@ -9,8 +9,10 @@ compiler.tree cpu.architecture fry kernel layouts make math namespaces
sequences sequences.generalizations words ;
IN: compiler.cfg.builder.alien
: with-param-regs* ( quot -- reg-values stack-values )
: with-param-regs ( abi quot -- reg-values stack-values )
'[
param-regs init-regs
0 stack-params set
V{ } clone reg-values set
V{ } clone stack-values set
@
@ -18,7 +20,7 @@ IN: compiler.cfg.builder.alien
stack-values get
stack-params get
struct-return-area get
] with-param-regs
] with-scope
struct-return-area set
stack-params set ; inline
@ -47,7 +49,7 @@ IN: compiler.cfg.builder.alien
_ unbox-parameters
_ prepare-struct-caller struct-return-area set
(caller-parameters)
] with-param-regs* ;
] with-param-regs ;
: prepare-caller-return ( params -- reg-outputs dead-outputs )
return>> [ { } ] [ base-type load-return ] if-void { } ;
@ -137,7 +139,7 @@ M: #alien-assembly emit-node ( block node -- block' )
'[
_ prepare-struct-callee struct-return-area set
_ [ base-type ] map (callee-parameters)
] with-param-regs* ;
] with-param-regs ;
: callee-return ( params -- reg-inputs )
return>> [ { } ] [

View File

@ -59,9 +59,6 @@ M: double-rep next-reg-param
: init-regs ( regs -- )
[ <reversed> >vector swap set ] assoc-each ;
: with-param-regs ( abi quot -- )
'[ param-regs init-regs 0 stack-params set @ ] with-scope ; inline
SYMBOLS: stack-values reg-values ;
:: next-parameter ( vreg rep on-stack? odd-register? -- )