%alien-assembly ( varargs? reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size quot -- )


Vocabulary
cpu.architecture

Inputs and outputs
varargs?an object
reg-inputsan object
stack-inputsan object
reg-outputsan object
dead-outputsan object
cleanupan object
stack-sizean object
quotan object


Definition


HOOK: %alien-assembly cpu
( varargs? reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size quot -- )


Methods

M:: x86 %alien-assembly
( varargs? reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size quot -- )
stack-inputs [ first3 %store-stack-param ] each reg-inputs
[ first3 %store-reg-param ] each varargs?
[ reg-inputs %prepare-var-args ] when
quot ( -- ) call-effect cleanup %cleanup reg-outputs
[ first3 %load-reg-param ] each dead-outputs
[ first2 %discard-reg-param ] each ;