mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-10 14:00:21 +02:00
* include/lightning.h, lib/jit_arm.c, lib/jit_mips.c, lib/jit_ppc.c, lib/jit_x86.c, lib/lightning.c: Change jit_prepare to no longer receive an argument. If receiving an argument, it should be an ABI specifier, not a boolean if varargs or not, and add the new jit_ellipsis call, to specify where the ellipsis is in the C prototype of the function being called. Note that currently it is not supported to define varargs functions and it will be ignored if calling jit_ellipsis not in a prepare/finish* block, but this should be addressed. * check/allocai.tst, check/alu_add.tst, check/alu_and.tst, check/alu_com.tst, check/alu_div.tst, check/alu_lsh.tst, check/alu_mul.tst, check/alu_neg.tst, check/alu_or.tst, check/alu_rem.tst, check/alu_rsh.tst, check/alu_sub.tst, check/alu_xor.tst, check/alux_add.tst, check/alux_sub.tst, check/bp.tst, check/branch.tst, check/cvt.tst, check/divi.tst, check/fib.tst, check/ldsti.tst, check/ldstr-c.tst, check/ldstr.tst, check/ldstxi-c.tst, check/ldstxi.tst, check/ldstxr-c.tst, check/ldstxr.tst, check/rpn.tst, check/lightning.c: Update for the change to jit_prepare and addition of jit_ellipsis.
33 lines
331 B
Scilab
33 lines
331 B
Scilab
.data 32
|
|
fmt:
|
|
.c "%d + %d = %d\n"
|
|
|
|
.code
|
|
jmpi main
|
|
|
|
test:
|
|
prolog
|
|
arg $i0
|
|
arg $i1
|
|
getarg %r0 $i0
|
|
getarg %r1 $i1
|
|
addr %ret %r0 %r1
|
|
ret
|
|
epilog
|
|
|
|
main:
|
|
prolog
|
|
prepare
|
|
pushargi 5
|
|
pushargi 4
|
|
finishi test
|
|
retval %r0
|
|
prepare
|
|
pushargi fmt
|
|
ellipsis
|
|
pushargi 5
|
|
pushargi 4
|
|
pushargr %r0
|
|
finishi @printf
|
|
ret
|
|
epilog
|