mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-04 11:10:27 +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.
36 lines
1,019 B
Scilab
36 lines
1,019 B
Scilab
#include "alu.inc"
|
|
|
|
.code
|
|
prolog
|
|
|
|
#define AND(N, I0, I1, V) ALU(N, , and, I0, I1, V)
|
|
|
|
AND(0, 0x7fffffff, 1, 1)
|
|
AND(1, 1, 0x7fffffff, 1)
|
|
AND(2, 0x80000000, 1, 0)
|
|
AND(3, 1, 0x80000000, 0)
|
|
AND(4, 0x7fffffff, 0x80000000, 0)
|
|
AND(5, 0x80000000, 0x7fffffff, 0)
|
|
AND(6, 0x7fffffff, 0xffffffff, 0x7fffffff)
|
|
AND(7, 0xffffffff, 0x7fffffff, 0x7fffffff)
|
|
AND(8, 0xffffffff, 0xffffffff, 0xffffffff)
|
|
AND(9, 0x7fffffff, 0, 0)
|
|
AND(10, 0, 0x7fffffff, 0)
|
|
#if __WORDSIZE == 64
|
|
AND(11, 0x7fffffffffffffff, 1, 1)
|
|
AND(12, 1, 0x7fffffffffffffff, 1)
|
|
AND(13, 0x8000000000000000, 1, 0)
|
|
AND(14, 1, 0x8000000000000000, 0)
|
|
AND(15, 0x7fffffffffffffff, 0x8000000000000000, 0)
|
|
AND(16, 0x8000000000000000, 0x7fffffffffffffff, 0)
|
|
AND(17, 0x7fffffffffffffff, 0xffffffffffffffff, 0x7fffffffffffffff)
|
|
AND(18, 0xffffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff)
|
|
AND(19, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff)
|
|
#endif
|
|
|
|
prepare
|
|
pushargi ok
|
|
ellipsis
|
|
finishi @printf
|
|
ret
|
|
epilog
|