diff options
Diffstat (limited to 'libguile/lightning/tests')
196 files changed, 0 insertions, 7123 deletions
diff --git a/libguile/lightning/tests/Makefile b/libguile/lightning/tests/Makefile deleted file mode 100644 index e94c6fdee..000000000 --- a/libguile/lightning/tests/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -TESTS=$(sort $(basename $(wildcard *.c))) - -CC = gcc -CFLAGS = -Wall -O0 -g - -all: $(addprefix test-,$(TESTS)) - -check: all - @echo "Running unit tests..." - @set -e; for test in $(TESTS); do \ - echo "Testing: $$test"; \ - ./test-$$test; \ - done - @echo "Success." - -lightening.o: ../lightening.h ../lightening/*.c - $(CC) $(CFLAGS) $(CPPFLAGS) -I.. -o lightening.o -c ../lightening/lightening.c - -test-%: %.c lightening.o test.h - $(CC) $(CFLAGS) $(CPPFLAGS) -I.. -o $@ lightening.o $< - -clean: - rm -f $(addprefix test-,$(TESTS)) - rm -f lightening.o diff --git a/libguile/lightning/tests/absr_d.c b/libguile/lightning/tests/absr_d.c deleted file mode 100644 index 5671c4f7b..000000000 --- a/libguile/lightning/tests/absr_d.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_absr_d(j, JIT_F0, JIT_F0); - jit_retr_d(j, JIT_F0); - - double (*f)(double) = jit_end(j, NULL); - - ASSERT(f(0.0) == 0.0); - ASSERT(f(-0.0) == 0.0); - ASSERT(f(0.5) == 0.5); - ASSERT(f(-0.5) == 0.5); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/absr_f.c b/libguile/lightning/tests/absr_f.c deleted file mode 100644 index e93fb4993..000000000 --- a/libguile/lightning/tests/absr_f.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_absr_f(j, JIT_F0, JIT_F0); - jit_retr_f(j, JIT_F0); - - float (*f)(float) = jit_end(j, NULL); - - ASSERT(f(0.0) == 0.0); - ASSERT(f(-0.0) == 0.0); - ASSERT(f(0.5) == 0.5); - ASSERT(f(-0.5) == 0.5); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/addi.c b/libguile/lightning/tests/addi.c deleted file mode 100644 index 9b1a82b0c..000000000 --- a/libguile/lightning/tests/addi.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_addi(j, JIT_R0, JIT_R0, 69); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - int (*f)(int) = ret; - ASSERT(f(42) == 111); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/addr.c b/libguile/lightning/tests/addr.c deleted file mode 100644 index 236fcd18a..000000000 --- a/libguile/lightning/tests/addr.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_addr(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - int (*f)(int, int) = ret; - ASSERT(f(42, 69) == 111); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/addr_d.c b/libguile/lightning/tests/addr_d.c deleted file mode 100644 index e89663eb0..000000000 --- a/libguile/lightning/tests/addr_d.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_addr_d(j, JIT_F0, JIT_F0, JIT_F1); - jit_retr_d(j, JIT_F0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - double (*f)(double, double) = ret; - ASSERT(f(42., 69.) == 111.); - ASSERT(f(42.5, 69.5) == 112.); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/addr_f.c b/libguile/lightning/tests/addr_f.c deleted file mode 100644 index ce918fd0f..000000000 --- a/libguile/lightning/tests/addr_f.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_addr_f(j, JIT_F0, JIT_F0, JIT_F1); - jit_retr_f(j, JIT_F0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - float (*f)(float, float) = ret; - ASSERT(f(42.f, 69.f) == 111.f); - ASSERT(f(42.5f, 69.5f) == 112.f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/addx.c b/libguile/lightning/tests/addx.c deleted file mode 100644 index 664c13998..000000000 --- a/libguile/lightning/tests/addx.c +++ /dev/null @@ -1,65 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - jit_movi(j, JIT_R2, 0); - jit_addcr(j, JIT_R0, JIT_R0, JIT_R1); - jit_addxi(j, JIT_R2, JIT_R2, 0); - jit_retr(j, JIT_R2); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0, 0) == 0); - -#if __WORDSIZE == 32 - /* carry */ - ASSERT(f(0xffffffff, 0xffffffff) == 1); - /* overflow */ - ASSERT(f(0x7fffffff, 1) == 0); - /* overflow */ - ASSERT(f(0x7fffffff, 0x7fffffff) == 0); - /* carry */ - ASSERT(f(0x7fffffff, 0x80000000) == 0); - /* carry+overflow */ - ASSERT(f(0x80000000, 0x80000000) == 1); -#else - /* nothing */ - ASSERT(f(0xffffffff, 0xffffffff) == 0); - /* nothing */ - ASSERT(f(0x7fffffff, 1) == 0); - /* nothing */ - ASSERT(f(0x7fffffff, 0x7fffffff) == 0); - /* nothing */ - ASSERT(f(0x7fffffff, 0x80000000) == 0); - /* nothing */ - ASSERT(f(0x80000000, 0x80000000) == 0); - /* carry */ - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == 1); - /* overflow */ - ASSERT(f(0x7fffffffffffffff, 1) == 0); - /* overflow */ - ASSERT(f(0x7fffffffffffffff, 0x7fffffffffffffff) == 0); - /* overflow */ - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == 0); - /* carry+overflow */ - ASSERT(f(0x8000000000000000, 0x8000000000000000) == 1); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/andi.c b/libguile/lightning/tests/andi.c deleted file mode 100644 index 781b7d0e0..000000000 --- a/libguile/lightning/tests/andi.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_andi(j, JIT_R0, JIT_R0, 1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t) = ret; - - ASSERT(f(0x7fffffff) == 1); - ASSERT(f(0x80000000) == 0); -#if __WORDSIZE == 64 - ASSERT(f(0x7fffffffffffffff) == 1); - ASSERT(f(0x8000000000000000) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/andr.c b/libguile/lightning/tests/andr.c deleted file mode 100644 index 4c549e8ef..000000000 --- a/libguile/lightning/tests/andr.c +++ /dev/null @@ -1,51 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_andr(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0x7fffffff, 1) == 1); - ASSERT(f(1, 0x7fffffff) == 1); - ASSERT(f(0x80000000, 1) == 0); - ASSERT(f(1, 0x80000000) == 0); - ASSERT(f(0x7fffffff, 0x80000000) == 0); - ASSERT(f(0x80000000, 0x7fffffff) == 0); - ASSERT(f(0x7fffffff, 0xffffffff) == 0x7fffffff); - ASSERT(f(0xffffffff, 0x7fffffff) == 0x7fffffff); - ASSERT(f(0xffffffff, 0xffffffff) == 0xffffffff); - ASSERT(f(0x7fffffff, 0) == 0); - ASSERT(f(0, 0x7fffffff) == 0); -#if __WORDSIZE == 64 - ASSERT(f(0x7fffffffffffffff, 1) == 1); - ASSERT(f(1, 0x7fffffffffffffff) == 1); - ASSERT(f(0x8000000000000000, 1) == 0); - ASSERT(f(1, 0x8000000000000000) == 0); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == 0); - ASSERT(f(0x8000000000000000, 0x7fffffffffffffff) == 0); - ASSERT(f(0x7fffffffffffffff, 0xffffffffffffffff) == 0x7fffffffffffffff); - ASSERT(f(0xffffffffffffffff, 0x7fffffffffffffff) == 0x7fffffffffffffff); - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == 0xffffffffffffffff); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/beqi.c b/libguile/lightning/tests/beqi.c deleted file mode 100644 index d65d48d7f..000000000 --- a/libguile/lightning/tests/beqi.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_reloc_t r = jit_beqi(j, JIT_R0, 0); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 1); - ASSERT(f(1) == 0); - ASSERT(f(-1) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/beqr.c b/libguile/lightning/tests/beqr.c deleted file mode 100644 index 6df434d02..000000000 --- a/libguile/lightning/tests/beqr.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_beqr(j, JIT_R0, JIT_R1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 0); - ASSERT(f(1, 1) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/beqr_d.c b/libguile/lightning/tests/beqr_d.c deleted file mode 100644 index 408f0dfb0..000000000 --- a/libguile/lightning/tests/beqr_d.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_beqr_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 0); - ASSERT(f(1, 1) == 1); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/beqr_f.c b/libguile/lightning/tests/beqr_f.c deleted file mode 100644 index 2e91105b2..000000000 --- a/libguile/lightning/tests/beqr_f.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_beqr_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 0); - ASSERT(f(1, 1) == 1); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bgei.c b/libguile/lightning/tests/bgei.c deleted file mode 100644 index 25fe2ee42..000000000 --- a/libguile/lightning/tests/bgei.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_reloc_t r = jit_bgei(j, JIT_R0, 0); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 1); - ASSERT(f(1) == 1); - ASSERT(f(-1) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bgei_u.c b/libguile/lightning/tests/bgei_u.c deleted file mode 100644 index f2b5a53ad..000000000 --- a/libguile/lightning/tests/bgei_u.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_reloc_t r = jit_bgei_u(j, JIT_R0, 0); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 1); - ASSERT(f(1) == 1); - ASSERT(f(-1) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bger.c b/libguile/lightning/tests/bger.c deleted file mode 100644 index 0bff98a64..000000000 --- a/libguile/lightning/tests/bger.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bger(j, JIT_R0, JIT_R1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bger_d.c b/libguile/lightning/tests/bger_d.c deleted file mode 100644 index 74786ad9f..000000000 --- a/libguile/lightning/tests/bger_d.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bger_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 1); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bger_f.c b/libguile/lightning/tests/bger_f.c deleted file mode 100644 index 03dde27d5..000000000 --- a/libguile/lightning/tests/bger_f.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bger_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 1); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bger_u.c b/libguile/lightning/tests/bger_u.c deleted file mode 100644 index 890aec995..000000000 --- a/libguile/lightning/tests/bger_u.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bger_u(j, JIT_R0, JIT_R1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bgti.c b/libguile/lightning/tests/bgti.c deleted file mode 100644 index fa1e7aa7d..000000000 --- a/libguile/lightning/tests/bgti.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_reloc_t r = jit_bgti(j, JIT_R0, 0); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(1) == 1); - ASSERT(f(-1) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bgti_u.c b/libguile/lightning/tests/bgti_u.c deleted file mode 100644 index 2d01728db..000000000 --- a/libguile/lightning/tests/bgti_u.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_reloc_t r = jit_bgti_u(j, JIT_R0, 0); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(1) == 1); - ASSERT(f(-1) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bgtr.c b/libguile/lightning/tests/bgtr.c deleted file mode 100644 index 779b32063..000000000 --- a/libguile/lightning/tests/bgtr.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bgtr(j, JIT_R0, JIT_R1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bgtr_d.c b/libguile/lightning/tests/bgtr_d.c deleted file mode 100644 index f5ea7a254..000000000 --- a/libguile/lightning/tests/bgtr_d.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bgtr_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 1); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bgtr_f.c b/libguile/lightning/tests/bgtr_f.c deleted file mode 100644 index e1aec3a12..000000000 --- a/libguile/lightning/tests/bgtr_f.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bgtr_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 1); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bgtr_u.c b/libguile/lightning/tests/bgtr_u.c deleted file mode 100644 index cec4d17dc..000000000 --- a/libguile/lightning/tests/bgtr_u.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bgtr_u(j, JIT_R0, JIT_R1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/blei.c b/libguile/lightning/tests/blei.c deleted file mode 100644 index 1d0a91eb6..000000000 --- a/libguile/lightning/tests/blei.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_reloc_t r = jit_blei(j, JIT_R0, 0); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 1); - ASSERT(f(1) == 0); - ASSERT(f(-1) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/blei_u.c b/libguile/lightning/tests/blei_u.c deleted file mode 100644 index fcfde3acb..000000000 --- a/libguile/lightning/tests/blei_u.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_reloc_t r = jit_blei_u(j, JIT_R0, 0); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 1); - ASSERT(f(1) == 0); - ASSERT(f(-1) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bler.c b/libguile/lightning/tests/bler.c deleted file mode 100644 index b4ec03442..000000000 --- a/libguile/lightning/tests/bler.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bler(j, JIT_R0, JIT_R1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bler_d.c b/libguile/lightning/tests/bler_d.c deleted file mode 100644 index 8d189a872..000000000 --- a/libguile/lightning/tests/bler_d.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bler_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 0); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bler_f.c b/libguile/lightning/tests/bler_f.c deleted file mode 100644 index 74cc65ceb..000000000 --- a/libguile/lightning/tests/bler_f.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bler_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 0); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bler_u.c b/libguile/lightning/tests/bler_u.c deleted file mode 100644 index 006f84b5e..000000000 --- a/libguile/lightning/tests/bler_u.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bler_u(j, JIT_R0, JIT_R1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bltgtr_d.c b/libguile/lightning/tests/bltgtr_d.c deleted file mode 100644 index 79ef13943..000000000 --- a/libguile/lightning/tests/bltgtr_d.c +++ /dev/null @@ -1,38 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bltgtr_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 1); - ASSERT(f(1, 1) == 0); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); - ASSERT(f(0.0/0.0, 0.0/0.0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bltgtr_f.c b/libguile/lightning/tests/bltgtr_f.c deleted file mode 100644 index 8cbf83e60..000000000 --- a/libguile/lightning/tests/bltgtr_f.c +++ /dev/null @@ -1,38 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bltgtr_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 1); - ASSERT(f(1, 1) == 0); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); - ASSERT(f(0.0/0.0, 0.0/0.0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/blti.c b/libguile/lightning/tests/blti.c deleted file mode 100644 index 8c3cd34ef..000000000 --- a/libguile/lightning/tests/blti.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_reloc_t r = jit_blti(j, JIT_R0, 0); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(1) == 0); - ASSERT(f(-1) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/blti_u.c b/libguile/lightning/tests/blti_u.c deleted file mode 100644 index b7af89d80..000000000 --- a/libguile/lightning/tests/blti_u.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_reloc_t r = jit_blti_u(j, JIT_R0, 0); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(1) == 0); - ASSERT(f(-1) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bltr.c b/libguile/lightning/tests/bltr.c deleted file mode 100644 index 56b0d68ee..000000000 --- a/libguile/lightning/tests/bltr.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bltr(j, JIT_R0, JIT_R1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bltr_d.c b/libguile/lightning/tests/bltr_d.c deleted file mode 100644 index 9ce78b666..000000000 --- a/libguile/lightning/tests/bltr_d.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bltr_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 0); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bltr_f.c b/libguile/lightning/tests/bltr_f.c deleted file mode 100644 index 177a5869a..000000000 --- a/libguile/lightning/tests/bltr_f.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bltr_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 0); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bltr_u.c b/libguile/lightning/tests/bltr_u.c deleted file mode 100644 index e87a946ae..000000000 --- a/libguile/lightning/tests/bltr_u.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bltr_u(j, JIT_R0, JIT_R1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bmci.c b/libguile/lightning/tests/bmci.c deleted file mode 100644 index 0ffe41541..000000000 --- a/libguile/lightning/tests/bmci.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_reloc_t r = jit_bmci(j, JIT_R0, 1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 1); - ASSERT(f(1) == 0); - ASSERT(f(-1) == 0); - ASSERT(f(2) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bmcr.c b/libguile/lightning/tests/bmcr.c deleted file mode 100644 index 03591fc65..000000000 --- a/libguile/lightning/tests/bmcr.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bmcr(j, JIT_R0, JIT_R1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 1); - ASSERT(f(1, 1) == 0); - ASSERT(f(1, -1) == 0); - ASSERT(f(-1, 1) == 0); - ASSERT(f(-1, -1) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bmsi.c b/libguile/lightning/tests/bmsi.c deleted file mode 100644 index 21f986ff3..000000000 --- a/libguile/lightning/tests/bmsi.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_reloc_t r = jit_bmsi(j, JIT_R0, 1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(1) == 1); - ASSERT(f(-1) == 1); - ASSERT(f(2) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bmsr.c b/libguile/lightning/tests/bmsr.c deleted file mode 100644 index cd5895198..000000000 --- a/libguile/lightning/tests/bmsr.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bmsr(j, JIT_R0, JIT_R1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 0); - ASSERT(f(1, 1) == 1); - ASSERT(f(1, -1) == 1); - ASSERT(f(-1, 1) == 1); - ASSERT(f(-1, -1) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bnei.c b/libguile/lightning/tests/bnei.c deleted file mode 100644 index a34a3ad23..000000000 --- a/libguile/lightning/tests/bnei.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_reloc_t r = jit_bnei(j, JIT_R0, 0); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(1) == 1); - ASSERT(f(-1) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bner.c b/libguile/lightning/tests/bner.c deleted file mode 100644 index c0253a6c1..000000000 --- a/libguile/lightning/tests/bner.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bner(j, JIT_R0, JIT_R1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bner_d.c b/libguile/lightning/tests/bner_d.c deleted file mode 100644 index d106ef51e..000000000 --- a/libguile/lightning/tests/bner_d.c +++ /dev/null @@ -1,38 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bner_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 1); - ASSERT(f(1, 1) == 0); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); - ASSERT(f(0.0/0.0, 0.0/0.0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bner_f.c b/libguile/lightning/tests/bner_f.c deleted file mode 100644 index 7c3753da0..000000000 --- a/libguile/lightning/tests/bner_f.c +++ /dev/null @@ -1,38 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bner_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 1); - ASSERT(f(1, 1) == 0); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); - ASSERT(f(0.0/0.0, 0.0/0.0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/boaddi.c b/libguile/lightning/tests/boaddi.c deleted file mode 100644 index 717c4c1a7..000000000 --- a/libguile/lightning/tests/boaddi.c +++ /dev/null @@ -1,43 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - jit_reloc_t r = jit_boaddi(j, JIT_R0, 1); - jit_retr(j, JIT_R0); - jit_patch_here(j, r); - jit_movi(j, JIT_R0, overflowed); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(-1) == 0); - ASSERT(f(0) == 1); - ASSERT(f(1) == 2); - -#if __WORDSIZE == 32 - ASSERT(f(0x7fffffff) == overflowed); - ASSERT(f(0x80000000) == 0x80000001); - ASSERT(f(0xffffffff) == 0); -#else - ASSERT(f(0x7fffffffffffffff) == overflowed); - ASSERT(f(0x8000000000000000) == 0x8000000000000001); - ASSERT(f(0xffffffffffffffff) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/boaddi_u.c b/libguile/lightning/tests/boaddi_u.c deleted file mode 100644 index 66b261b3f..000000000 --- a/libguile/lightning/tests/boaddi_u.c +++ /dev/null @@ -1,43 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - jit_reloc_t r = jit_boaddi_u(j, JIT_R0, 1); - jit_retr(j, JIT_R0); - jit_patch_here(j, r); - jit_movi(j, JIT_R0, overflowed); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(-1) == overflowed); - ASSERT(f(0) == 1); - ASSERT(f(1) == 2); - -#if __WORDSIZE == 32 - ASSERT(f(0x7fffffff) == 0x80000000); - ASSERT(f(0x80000000) == 0x80000001); - ASSERT(f(0xffffffff) == overflowed); -#else - ASSERT(f(0x7fffffffffffffff) == 0x8000000000000000); - ASSERT(f(0x8000000000000000) == 0x8000000000000001); - ASSERT(f(0xffffffffffffffff) == overflowed); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/boaddr.c b/libguile/lightning/tests/boaddr.c deleted file mode 100644 index 95fb6244f..000000000 --- a/libguile/lightning/tests/boaddr.c +++ /dev/null @@ -1,52 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - jit_reloc_t r = jit_boaddr(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - jit_patch_here(j, r); - jit_movi(j, JIT_R0, overflowed); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(1, 1) == 2); - -#if __WORDSIZE == 32 - ASSERT(f(0xffffffff, 0xffffffff) == -2); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); - ASSERT(f(0x7fffffff, 1) == overflowed); - ASSERT(f(0x7fffffff, 0x7fffffff) == overflowed); - ASSERT(f(0x7fffffff, 0x80000000) == -1); - ASSERT(f(0x80000000, 0x80000000) == overflowed); -#else - ASSERT(f(0xffffffff, 0xffffffff) == 0xffffffffull + 0xffffffffull); - ASSERT(f(0x7fffffff, 1) == 0x80000000); - ASSERT(f(0x7fffffff, 0x7fffffff) == 0x7fffffffull + 0x7fffffffull); - ASSERT(f(0x7fffffff, 0x80000000) == 0xffffffff); - ASSERT(f(0x80000000, 0x80000000) == 0x100000000); - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == -2); - ASSERT(f(0x7fffffffffffffff, 1) == overflowed); - ASSERT(f(0x7fffffffffffffff, 0x7fffffffffffffff) == overflowed); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == -1); - ASSERT(f(0x8000000000000000, 0x8000000000000000) == overflowed); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/boaddr_u.c b/libguile/lightning/tests/boaddr_u.c deleted file mode 100644 index b9b2b4585..000000000 --- a/libguile/lightning/tests/boaddr_u.c +++ /dev/null @@ -1,52 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - jit_reloc_t r = jit_boaddr_u(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - jit_patch_here(j, r); - jit_movi(j, JIT_R0, overflowed); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(1, 1) == 2); - -#if __WORDSIZE == 32 - ASSERT(f(0xffffffff, 0xffffffff) == overflowed); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); - ASSERT(f(0x7fffffff, 1) == 0x80000000); - ASSERT(f(0x7fffffff, 0x7fffffff) == 0x7fffffff + 0x7fffffff); - ASSERT(f(0x7fffffff, 0x80000000) == 0xffffffff); - ASSERT(f(0x80000000, 0x80000000) == overflowed); -#else - ASSERT(f(0xffffffff, 0xffffffff) == 0xffffffffull + 0xffffffffull); - ASSERT(f(0x7fffffff, 1) == 0x80000000); - ASSERT(f(0x7fffffff, 0x7fffffff) == 0x7fffffffull + 0x7fffffffull); - ASSERT(f(0x7fffffff, 0x80000000) == 0xffffffff); - ASSERT(f(0x80000000, 0x80000000) == 0x100000000); - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == overflowed); - ASSERT(f(0x7fffffffffffffff, 1) == 0x8000000000000000); - ASSERT(f(0x7fffffffffffffff, 0x7fffffffffffffff) == -2); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == -1); - ASSERT(f(0x8000000000000000, 0x8000000000000000) == overflowed); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bordr_d.c b/libguile/lightning/tests/bordr_d.c deleted file mode 100644 index 24f42148c..000000000 --- a/libguile/lightning/tests/bordr_d.c +++ /dev/null @@ -1,38 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bordr_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 1); - ASSERT(f(1, 1) == 1); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); - ASSERT(f(0.0/0.0, 0.0/0.0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bordr_f.c b/libguile/lightning/tests/bordr_f.c deleted file mode 100644 index 827da92a7..000000000 --- a/libguile/lightning/tests/bordr_f.c +++ /dev/null @@ -1,38 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bordr_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 1); - ASSERT(f(1, 1) == 1); - - ASSERT(f(0, 0.0/0.0) == 0); - ASSERT(f(0.0/0.0, 0) == 0); - ASSERT(f(0.0/0.0, 0.0/0.0) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bosubi.c b/libguile/lightning/tests/bosubi.c deleted file mode 100644 index b64514070..000000000 --- a/libguile/lightning/tests/bosubi.c +++ /dev/null @@ -1,43 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - jit_reloc_t r = jit_bosubi(j, JIT_R0, 1); - jit_retr(j, JIT_R0); - jit_patch_here(j, r); - jit_movi(j, JIT_R0, overflowed); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(-1) == -2); - ASSERT(f(0) == -1); - ASSERT(f(1) == 0); - -#if __WORDSIZE == 32 - ASSERT(f(0x7fffffff) == 0x7ffffffe); - ASSERT(f(0x80000000) == overflowed); - ASSERT(f(0x80000001) == 0x80000000); -#else - ASSERT(f(0x7fffffffffffffff) == 0x7ffffffffffffffe); - ASSERT(f(0x8000000000000000) == overflowed); - ASSERT(f(0x8000000000000001) == 0x8000000000000000); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bosubi_u.c b/libguile/lightning/tests/bosubi_u.c deleted file mode 100644 index 76a7d6726..000000000 --- a/libguile/lightning/tests/bosubi_u.c +++ /dev/null @@ -1,39 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - jit_reloc_t r = jit_bosubi_u(j, JIT_R0, 1); - jit_retr(j, JIT_R0); - jit_patch_here(j, r); - jit_movi(j, JIT_R0, overflowed); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(-1) == -2); - ASSERT(f(0) == overflowed); - ASSERT(f(1) == 0); - -#if __WORDSIZE == 32 - ASSERT(f(0x80000000) == 0x7fffffff); -#else - ASSERT(f(0x8000000000000000) == 0x7fffffffffffffff); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bosubr.c b/libguile/lightning/tests/bosubr.c deleted file mode 100644 index e79c10bb2..000000000 --- a/libguile/lightning/tests/bosubr.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - jit_reloc_t r = jit_bosubr(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - jit_patch_here(j, r); - jit_movi(j, JIT_R0, overflowed); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == -1); - ASSERT(f(1, 1) == 0); - ASSERT(f(1, -1) == 2); - -#if __WORDSIZE == 32 - ASSERT(f(0xffffffff, 0xffffffff) == 0); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); - ASSERT(f(0x7fffffff, 1) == 0x7ffffffe); - ASSERT(f(0x7fffffff, 0x7fffffff) == 0); - ASSERT(f(0x80000000, 0x7fffffff) == overflowed); - ASSERT(f(0x7fffffff, 0x80000000) == overflowed); - ASSERT(f(0x80000000, 0x80000000) == 0); -#else - ASSERT(f(0x7fffffffffffffff, 0x7fffffffffffffff) == 0); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == overflowed); - ASSERT(f(0x8000000000000000, 0x7fffffffffffffff) == overflowed); - ASSERT(f(0x8000000000000000, 0x8000000000000000) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bosubr_u.c b/libguile/lightning/tests/bosubr_u.c deleted file mode 100644 index ad55af386..000000000 --- a/libguile/lightning/tests/bosubr_u.c +++ /dev/null @@ -1,48 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - jit_reloc_t r = jit_bosubr_u(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - jit_patch_here(j, r); - jit_movi(j, JIT_R0, overflowed); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(1, 1) == 0); - ASSERT(f(0, 1) == overflowed); - ASSERT(f(1, 0) == 1); - -#if __WORDSIZE == 32 - ASSERT(f(0xffffffff, 0xffffffff) == 0); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); - ASSERT(f(0x7fffffff, 1) == 0x7ffffffe); - ASSERT(f(0x7fffffff, 0x7fffffff) == 0); - ASSERT(f(0x7fffffff, 0x80000000) == overflowed); - ASSERT(f(0x80000000, 0x80000000) == 0); -#else - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == 0); - ASSERT(f(0x7fffffffffffffff, 0x7fffffffffffffff) == 0); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == overflowed); - ASSERT(f(0x8000000000000000, 0x8000000000000000) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bswapr_ui.c b/libguile/lightning/tests/bswapr_ui.c deleted file mode 100644 index f566ad486..000000000 --- a/libguile/lightning/tests/bswapr_ui.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_bswapr_ui(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(0x12345678) == 0x78563412); -#if __WORDSIZE > 32 - ASSERT(f(0xff12345678) == 0x78563412); - ASSERT(f(0xff00000000) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bswapr_ul.c b/libguile/lightning/tests/bswapr_ul.c deleted file mode 100644 index 28a2f0390..000000000 --- a/libguile/lightning/tests/bswapr_ul.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_bswapr_ul(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(0x12345678) == 0x7856341200000000); - ASSERT(f(0xff12345678) == 0x78563412ff000000); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bswapr_us.c b/libguile/lightning/tests/bswapr_us.c deleted file mode 100644 index 10028dfb7..000000000 --- a/libguile/lightning/tests/bswapr_us.c +++ /dev/null @@ -1,28 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_bswapr_us(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(0x12345678) == 0x7856); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/buneqr_d.c b/libguile/lightning/tests/buneqr_d.c deleted file mode 100644 index 887a3ddc2..000000000 --- a/libguile/lightning/tests/buneqr_d.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_buneqr_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 0); - ASSERT(f(1, 1) == 1); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/buneqr_f.c b/libguile/lightning/tests/buneqr_f.c deleted file mode 100644 index 0671daeb1..000000000 --- a/libguile/lightning/tests/buneqr_f.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_buneqr_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 0); - ASSERT(f(1, 1) == 1); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bunger_d.c b/libguile/lightning/tests/bunger_d.c deleted file mode 100644 index 3a22336ca..000000000 --- a/libguile/lightning/tests/bunger_d.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bunger_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 1); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bunger_f.c b/libguile/lightning/tests/bunger_f.c deleted file mode 100644 index a4bd7f0df..000000000 --- a/libguile/lightning/tests/bunger_f.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bunger_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 1); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bungtr_d.c b/libguile/lightning/tests/bungtr_d.c deleted file mode 100644 index 780e8d0b2..000000000 --- a/libguile/lightning/tests/bungtr_d.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bungtr_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 1); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bungtr_f.c b/libguile/lightning/tests/bungtr_f.c deleted file mode 100644 index 4debed9f7..000000000 --- a/libguile/lightning/tests/bungtr_f.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bungtr_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 1); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 1); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bunler_d.c b/libguile/lightning/tests/bunler_d.c deleted file mode 100644 index 868001eb2..000000000 --- a/libguile/lightning/tests/bunler_d.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bunler_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 0); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bunler_f.c b/libguile/lightning/tests/bunler_f.c deleted file mode 100644 index 10c5d4abd..000000000 --- a/libguile/lightning/tests/bunler_f.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bunler_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 1); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 0); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bunltr_d.c b/libguile/lightning/tests/bunltr_d.c deleted file mode 100644 index 79b96a1c7..000000000 --- a/libguile/lightning/tests/bunltr_d.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bunltr_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 0); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bunltr_f.c b/libguile/lightning/tests/bunltr_f.c deleted file mode 100644 index 3fdd4bb15..000000000 --- a/libguile/lightning/tests/bunltr_f.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bunltr_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 1); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 1); - ASSERT(f(0, -1) == 0); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bunordr_d.c b/libguile/lightning/tests/bunordr_d.c deleted file mode 100644 index ef3818d51..000000000 --- a/libguile/lightning/tests/bunordr_d.c +++ /dev/null @@ -1,38 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bunordr_d(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(double, double) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 0); - ASSERT(f(1, 1) == 0); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); - ASSERT(f(0.0/0.0, 0.0/0.0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bunordr_f.c b/libguile/lightning/tests/bunordr_f.c deleted file mode 100644 index 3af023862..000000000 --- a/libguile/lightning/tests/bunordr_f.c +++ /dev/null @@ -1,38 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_reloc_t r = jit_bunordr_f(j, JIT_F0, JIT_F1); - jit_reti(j, 0); - jit_patch_here(j, r); - jit_reti(j, 1); - - intmax_t (*f)(float, float) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == 0); - ASSERT(f(1, 0) == 0); - ASSERT(f(-1, 0) == 0); - ASSERT(f(0, -1) == 0); - ASSERT(f(1, 1) == 0); - - ASSERT(f(0, 0.0/0.0) == 1); - ASSERT(f(0.0/0.0, 0) == 1); - ASSERT(f(0.0/0.0, 0.0/0.0) == 1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bxaddi.c b/libguile/lightning/tests/bxaddi.c deleted file mode 100644 index 16d405524..000000000 --- a/libguile/lightning/tests/bxaddi.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - jit_reloc_t r = jit_bxaddi(j, JIT_R0, 1); - jit_movi(j, JIT_R0, overflowed); - jit_patch_here(j, r); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(-1) == 0); - ASSERT(f(0) == 1); - ASSERT(f(1) == 2); - -#if __WORDSIZE == 32 - ASSERT(f(0x7fffffff) == overflowed); - ASSERT(f(0x80000000) == 0x80000001); - ASSERT(f(0xffffffff) == 0); -#else - ASSERT(f(0x7fffffffffffffff) == overflowed); - ASSERT(f(0x8000000000000000) == 0x8000000000000001); - ASSERT(f(0xffffffffffffffff) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bxaddi_u.c b/libguile/lightning/tests/bxaddi_u.c deleted file mode 100644 index 6c3257876..000000000 --- a/libguile/lightning/tests/bxaddi_u.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - jit_reloc_t r = jit_bxaddi_u(j, JIT_R0, 1); - jit_movi(j, JIT_R0, overflowed); - jit_patch_here(j, r); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(-1) == overflowed); - ASSERT(f(0) == 1); - ASSERT(f(1) == 2); - -#if __WORDSIZE == 32 - ASSERT(f(0x7fffffff) == 0x80000000); - ASSERT(f(0x80000000) == 0x80000001); - ASSERT(f(0xffffffff) == overflowed); -#else - ASSERT(f(0x7fffffffffffffff) == 0x8000000000000000); - ASSERT(f(0x8000000000000000) == 0x8000000000000001); - ASSERT(f(0xffffffffffffffff) == overflowed); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bxaddr.c b/libguile/lightning/tests/bxaddr.c deleted file mode 100644 index a73a0d8eb..000000000 --- a/libguile/lightning/tests/bxaddr.c +++ /dev/null @@ -1,51 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - jit_reloc_t r = jit_bxaddr(j, JIT_R0, JIT_R1); - jit_movi(j, JIT_R0, overflowed); - jit_patch_here(j, r); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(1, 1) == 2); - -#if __WORDSIZE == 32 - ASSERT(f(0xffffffff, 0xffffffff) == -2); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); - ASSERT(f(0x7fffffff, 1) == overflowed); - ASSERT(f(0x7fffffff, 0x7fffffff) == overflowed); - ASSERT(f(0x7fffffff, 0x80000000) == -1); - ASSERT(f(0x80000000, 0x80000000) == overflowed); -#else - ASSERT(f(0xffffffff, 0xffffffff) == 0xffffffffull + 0xffffffffull); - ASSERT(f(0x7fffffff, 1) == 0x80000000); - ASSERT(f(0x7fffffff, 0x7fffffff) == 0x7fffffffull + 0x7fffffffull); - ASSERT(f(0x7fffffff, 0x80000000) == 0xffffffff); - ASSERT(f(0x80000000, 0x80000000) == 0x100000000); - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == -2); - ASSERT(f(0x7fffffffffffffff, 1) == overflowed); - ASSERT(f(0x7fffffffffffffff, 0x7fffffffffffffff) == overflowed); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == -1); - ASSERT(f(0x8000000000000000, 0x8000000000000000) == overflowed); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bxaddr_u.c b/libguile/lightning/tests/bxaddr_u.c deleted file mode 100644 index ba54c0391..000000000 --- a/libguile/lightning/tests/bxaddr_u.c +++ /dev/null @@ -1,51 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - jit_reloc_t r = jit_bxaddr_u(j, JIT_R0, JIT_R1); - jit_movi(j, JIT_R0, overflowed); - jit_patch_here(j, r); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(1, 1) == 2); - -#if __WORDSIZE == 32 - ASSERT(f(0xffffffff, 0xffffffff) == overflowed); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); - ASSERT(f(0x7fffffff, 1) == 0x80000000); - ASSERT(f(0x7fffffff, 0x7fffffff) == 0x7fffffff + 0x7fffffff); - ASSERT(f(0x7fffffff, 0x80000000) == 0xffffffff); - ASSERT(f(0x80000000, 0x80000000) == overflowed); -#else - ASSERT(f(0xffffffff, 0xffffffff) == 0xffffffffull + 0xffffffffull); - ASSERT(f(0x7fffffff, 1) == 0x80000000); - ASSERT(f(0x7fffffff, 0x7fffffff) == 0x7fffffffull + 0x7fffffffull); - ASSERT(f(0x7fffffff, 0x80000000) == 0xffffffff); - ASSERT(f(0x80000000, 0x80000000) == 0x100000000); - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == overflowed); - ASSERT(f(0x7fffffffffffffff, 1) == 0x8000000000000000); - ASSERT(f(0x7fffffffffffffff, 0x7fffffffffffffff) == -2); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == -1); - ASSERT(f(0x8000000000000000, 0x8000000000000000) == overflowed); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bxsubi.c b/libguile/lightning/tests/bxsubi.c deleted file mode 100644 index 83669ac12..000000000 --- a/libguile/lightning/tests/bxsubi.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - jit_reloc_t r = jit_bxsubi(j, JIT_R0, 1); - jit_movi(j, JIT_R0, overflowed); - jit_patch_here(j, r); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(-1) == -2); - ASSERT(f(0) == -1); - ASSERT(f(1) == 0); - -#if __WORDSIZE == 32 - ASSERT(f(0x7fffffff) == 0x7ffffffe); - ASSERT(f(0x80000000) == overflowed); - ASSERT(f(0x80000001) == 0x80000000); -#else - ASSERT(f(0x7fffffffffffffff) == 0x7ffffffffffffffe); - ASSERT(f(0x8000000000000000) == overflowed); - ASSERT(f(0x8000000000000001) == 0x8000000000000000); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bxsubi_u.c b/libguile/lightning/tests/bxsubi_u.c deleted file mode 100644 index 5d0972706..000000000 --- a/libguile/lightning/tests/bxsubi_u.c +++ /dev/null @@ -1,38 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - jit_reloc_t r = jit_bxsubi_u(j, JIT_R0, 1); - jit_movi(j, JIT_R0, overflowed); - jit_patch_here(j, r); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(-1) == -2); - ASSERT(f(0) == overflowed); - ASSERT(f(1) == 0); - -#if __WORDSIZE == 32 - ASSERT(f(0x80000000) == 0x7fffffff); -#else - ASSERT(f(0x8000000000000000) == 0x7fffffffffffffff); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bxsubr.c b/libguile/lightning/tests/bxsubr.c deleted file mode 100644 index aa99db9c4..000000000 --- a/libguile/lightning/tests/bxsubr.c +++ /dev/null @@ -1,48 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - jit_reloc_t r = jit_bxsubr(j, JIT_R0, JIT_R1); - jit_movi(j, JIT_R0, overflowed); - jit_patch_here(j, r); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(0, 1) == -1); - ASSERT(f(1, 1) == 0); - ASSERT(f(1, -1) == 2); - -#if __WORDSIZE == 32 - ASSERT(f(0xffffffff, 0xffffffff) == 0); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); - ASSERT(f(0x7fffffff, 1) == 0x7ffffffe); - ASSERT(f(0x7fffffff, 0x7fffffff) == 0); - ASSERT(f(0x80000000, 0x7fffffff) == overflowed); - ASSERT(f(0x7fffffff, 0x80000000) == overflowed); - ASSERT(f(0x80000000, 0x80000000) == 0); -#else - ASSERT(f(0x7fffffffffffffff, 0x7fffffffffffffff) == 0); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == overflowed); - ASSERT(f(0x8000000000000000, 0x7fffffffffffffff) == overflowed); - ASSERT(f(0x8000000000000000, 0x8000000000000000) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/bxsubr_u.c b/libguile/lightning/tests/bxsubr_u.c deleted file mode 100644 index f476c247a..000000000 --- a/libguile/lightning/tests/bxsubr_u.c +++ /dev/null @@ -1,47 +0,0 @@ -#include "test.h" - -static const intmax_t overflowed = 0xcabba9e5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - jit_reloc_t r = jit_bxsubr_u(j, JIT_R0, JIT_R1); - jit_movi(j, JIT_R0, overflowed); - jit_patch_here(j, r); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t, intmax_t) = jit_end(j, NULL); - - ASSERT(f(0, 0) == 0); - ASSERT(f(1, 1) == 0); - ASSERT(f(0, 1) == overflowed); - ASSERT(f(1, 0) == 1); - -#if __WORDSIZE == 32 - ASSERT(f(0xffffffff, 0xffffffff) == 0); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); - ASSERT(f(0x7fffffff, 1) == 0x7ffffffe); - ASSERT(f(0x7fffffff, 0x7fffffff) == 0); - ASSERT(f(0x7fffffff, 0x80000000) == overflowed); - ASSERT(f(0x80000000, 0x80000000) == 0); -#else - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == 0); - ASSERT(f(0x7fffffffffffffff, 0x7fffffffffffffff) == 0); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == overflowed); - ASSERT(f(0x8000000000000000, 0x8000000000000000) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/comr.c b/libguile/lightning/tests/comr.c deleted file mode 100644 index 608c374c1..000000000 --- a/libguile/lightning/tests/comr.c +++ /dev/null @@ -1,45 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_comr(j, JIT_R0, JIT_R0); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - -#if __WORDSIZE == 32 - ASSERT(f(0) == 0xffffffff); - ASSERT(f(1) == 0xfffffffe); - ASSERT(f(0xffffffff) == 0); - ASSERT(f(0x80000000) == 0x7fffffff); - ASSERT(f(0x7fffffff) == 0x80000000); - ASSERT(f(0x80000001) == 0x7ffffffe); -#else - ASSERT(f(0) == 0xffffffffffffffff); - ASSERT(f(1) == 0xfffffffffffffffe); - ASSERT(f(0xffffffff) == 0xffffffff00000000); - ASSERT(f(0x80000000) == 0xffffffff7fffffff); - ASSERT(f(0x7fffffff) == 0xffffffff80000000); - ASSERT(f(0x80000001) == 0xffffffff7ffffffe); - ASSERT(f(0xffffffffffffffff) == 0); - ASSERT(f(0x8000000000000000) == 0x7fffffffffffffff); - ASSERT(f(0x7fffffffffffffff) == 0x8000000000000000); - ASSERT(f(0x8000000000000001) == 0x7ffffffffffffffe); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/divr.c b/libguile/lightning/tests/divr.c deleted file mode 100644 index 389a69d15..000000000 --- a/libguile/lightning/tests/divr.c +++ /dev/null @@ -1,63 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_divr(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0x7fffffff, 1) == 0x7fffffff); - ASSERT(f(1, 0x7fffffff) == 0); - ASSERT(f(0x80000000, 1) == 0x80000000); - ASSERT(f(1, 0x80000000) == 0); - ASSERT(f(0x7fffffff, 2) == 0x3fffffff); - ASSERT(f(2, 0x7fffffff) == 0); - ASSERT(f(2, 0x80000000) == 0); - ASSERT(f(0x7fffffff, 0x80000000) == 0); - ASSERT(f(0, 0x7fffffff) == 0); - ASSERT(f(0xffffffff, 0xffffffff) == 1); -#if __WORDSIZE == 32 - ASSERT(f(0x80000000, 2) == 0xc0000000); - ASSERT(f(0x80000000, 0x7fffffff) == 0xffffffff); - ASSERT(f(0x7fffffff, 0xffffffff) == 0x80000001); - ASSERT(f(0xffffffff, 0x7fffffff) == 0); -#else - ASSERT(f(0x80000000, 2) == 0x40000000); - ASSERT(f(0x80000000, 0x7fffffff) == 1); - ASSERT(f(0x7fffffff, 0xffffffff) == 0); - ASSERT(f(0xffffffff, 0x7fffffff) == 2); - ASSERT(f(0x7fffffffffffffff, 1) == 0x7fffffffffffffff); - ASSERT(f(1, 0x7fffffffffffffff) == 0); - ASSERT(f(0x8000000000000000, 1) == 0x8000000000000000); - ASSERT(f(1, 0x8000000000000000) == 0); - ASSERT(f(0x7fffffffffffffff, 2) == 0x3fffffffffffffff); - ASSERT(f(2, 0x7fffffffffffffff) == 0); - ASSERT(f(0x8000000000000000, 2) == 0xc000000000000000); - ASSERT(f(2, 0x8000000000000000) == 0); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == 0); - ASSERT(f(0x8000000000000000, 0x7fffffffffffffff) == 0xffffffffffffffff); - ASSERT(f(0x7fffffffffffffff, 0xffffffffffffffff) == 0x8000000000000001); - ASSERT(f(0xffffffffffffffff, 0x7fffffffffffffff) == 0); - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == 1); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/divr_d.c b/libguile/lightning/tests/divr_d.c deleted file mode 100644 index 8597fdda0..000000000 --- a/libguile/lightning/tests/divr_d.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_divr_d(j, JIT_F0, JIT_F0, JIT_F1); - jit_retr_d(j, JIT_F0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - double (*f)(double, double) = ret; - ASSERT(f(-0.5f, 0.5f) == -1.0f); - ASSERT(f(1.25f, 0.5f) == 2.5f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/divr_f.c b/libguile/lightning/tests/divr_f.c deleted file mode 100644 index dd2c63317..000000000 --- a/libguile/lightning/tests/divr_f.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_divr_f(j, JIT_F0, JIT_F0, JIT_F1); - jit_retr_f(j, JIT_F0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - float (*f)(float, float) = ret; - ASSERT(f(-0.5f, 0.5f) == -1.0f); - ASSERT(f(1.25f, 0.5f) == 2.5f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/divr_u.c b/libguile/lightning/tests/divr_u.c deleted file mode 100644 index 177c6098c..000000000 --- a/libguile/lightning/tests/divr_u.c +++ /dev/null @@ -1,58 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_divr_u(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0x7fffffff, 1) == 0x7fffffff); - ASSERT(f(1, 0x7fffffff) == 0); - ASSERT(f(0x80000000, 1) == 0x80000000); - ASSERT(f(1, 0x80000000) == 0); - ASSERT(f(0x7fffffff, 2) == 0x3fffffff); - ASSERT(f(2, 0x7fffffff) == 0); - ASSERT(f(0x80000000, 2) == 0x40000000); - ASSERT(f(2, 0x80000000) == 0); - ASSERT(f(0x7fffffff, 0x80000000) == 0); - ASSERT(f(0x80000000, 0x7fffffff) == 1); - ASSERT(f(0, 0x7fffffff) == 0); - ASSERT(f(0x7fffffff, 0xffffffff) == 0); - ASSERT(f(0xffffffff, 0x7fffffff) == 2); - ASSERT(f(0xffffffff, 0xffffffff) == 1); -#if __WORDSIZE != 32 - ASSERT(f(0x7fffffffffffffff, 1) == 0x7fffffffffffffff); - ASSERT(f(1, 0x7fffffffffffffff) == 0); - ASSERT(f(0x8000000000000000, 1) == 0x8000000000000000); - ASSERT(f(1, 0x8000000000000000) == 0); - ASSERT(f(0x7fffffffffffffff, 2) == 0x3fffffffffffffff); - ASSERT(f(2, 0x7fffffffffffffff) == 0); - ASSERT(f(0x8000000000000000, 2) == 0x4000000000000000); - ASSERT(f(2, 0x8000000000000000) == 0); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == 0); - ASSERT(f(0x8000000000000000, 0x7fffffffffffffff) == 1); - ASSERT(f(0x7fffffffffffffff, 0xffffffffffffffff) == 0); - ASSERT(f(0xffffffffffffffff, 0x7fffffffffffffff) == 2); - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == 1); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/extr_c.c b/libguile/lightning/tests/extr_c.c deleted file mode 100644 index f4390a789..000000000 --- a/libguile/lightning/tests/extr_c.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_extr_c(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(1) == 1); - ASSERT(f(0xf) == 0xf); - ASSERT(f(0xff) == -1); - ASSERT(f(0xfff) == -1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/extr_d.c b/libguile/lightning/tests/extr_d.c deleted file mode 100644 index 35d0ab3b7..000000000 --- a/libguile/lightning/tests/extr_d.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_extr_d(j, JIT_F0, JIT_R0); - jit_retr_d(j, JIT_F0); - - double (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0.0); - ASSERT(f(1) == 1.0); - ASSERT(f(-100) == -100.0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/extr_d_f.c b/libguile/lightning/tests/extr_d_f.c deleted file mode 100644 index 570bae814..000000000 --- a/libguile/lightning/tests/extr_d_f.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_extr_d_f(j, JIT_F0, JIT_F0); - jit_retr_f(j, JIT_F0); - - float (*f)(double) = jit_end(j, NULL); - - ASSERT(f(0.0) == 0.0f); - ASSERT(f(0.5) == 0.5f); - ASSERT(f(1.0 / 0.0) == 1.0f / 0.0f); - ASSERT(f(1.25) == 1.25f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/extr_f.c b/libguile/lightning/tests/extr_f.c deleted file mode 100644 index f16cd8ca3..000000000 --- a/libguile/lightning/tests/extr_f.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_extr_f(j, JIT_F0, JIT_R0); - jit_retr_f(j, JIT_F0); - - float (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0.0f); - ASSERT(f(1) == 1.0f); - ASSERT(f(-100) == -100.0f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/extr_f_d.c b/libguile/lightning/tests/extr_f_d.c deleted file mode 100644 index 5e90be41b..000000000 --- a/libguile/lightning/tests/extr_f_d.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_extr_f_d(j, JIT_F0, JIT_F0); - jit_retr_d(j, JIT_F0); - - double (*f)(float) = jit_end(j, NULL); - - ASSERT(f(0.0f) == 0.0); - ASSERT(f(0.5f) == 0.5); - ASSERT(f(1.0f / 0.0f) == 1.0 / 0.0); - ASSERT(f(1.25f) == 1.25); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/extr_i.c b/libguile/lightning/tests/extr_i.c deleted file mode 100644 index a0ec07916..000000000 --- a/libguile/lightning/tests/extr_i.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_extr_i(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(1) == 1); - ASSERT(f(0xfffffff) == 0xfffffff); - ASSERT(f(0xffffffff) == -1); - ASSERT(f(0xfffffffff) == -1); - ASSERT(f(0xf00000000) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/extr_s.c b/libguile/lightning/tests/extr_s.c deleted file mode 100644 index c12adb722..000000000 --- a/libguile/lightning/tests/extr_s.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_extr_s(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(1) == 1); - ASSERT(f(0xfff) == 0xfff); - ASSERT(f(0xffff) == -1); - ASSERT(f(0xfffff) == -1); - ASSERT(f(0xf0000) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/extr_uc.c b/libguile/lightning/tests/extr_uc.c deleted file mode 100644 index fb700bd36..000000000 --- a/libguile/lightning/tests/extr_uc.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_extr_uc(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(1) == 1); - ASSERT(f(0xff) == 0xff); - ASSERT(f(0xfff) == 0xff); - ASSERT(f(0xf00) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/extr_ui.c b/libguile/lightning/tests/extr_ui.c deleted file mode 100644 index 30706f093..000000000 --- a/libguile/lightning/tests/extr_ui.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_extr_ui(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(1) == 1); - ASSERT(f(0xffffffff) == 0xffffffff); - ASSERT(f(0xfffffffff) == 0xffffffff); - ASSERT(f(0xf00000000) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/extr_us.c b/libguile/lightning/tests/extr_us.c deleted file mode 100644 index a10f6e916..000000000 --- a/libguile/lightning/tests/extr_us.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_extr_us(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); - ASSERT(f(1) == 1); - ASSERT(f(0xffff) == 0xffff); - ASSERT(f(0xfffff) == 0xffff); - ASSERT(f(0xf0000) == 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/jmpi.c b/libguile/lightning/tests/jmpi.c deleted file mode 100644 index 2f9213fec..000000000 --- a/libguile/lightning/tests/jmpi.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "test.h" - -static int tail(void) { return 42; } - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - jit_jmpi(j, tail); - - int (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == 42); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/jmpr.c b/libguile/lightning/tests/jmpr.c deleted file mode 100644 index 32a771791..000000000 --- a/libguile/lightning/tests/jmpr.c +++ /dev/null @@ -1,27 +0,0 @@ -#include "test.h" - -static int tail(void) { return 42; } - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_jmpr(j, JIT_R0); - - int (*f)(void*) = jit_end(j, NULL); - ASSERT(f(tail) == 42); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldi_c.c b/libguile/lightning/tests/ldi_c.c deleted file mode 100644 index e08231596..000000000 --- a/libguile/lightning/tests/ldi_c.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "test.h" - -static uint8_t data[] = { 0xff, 0x00, 0x42 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - jit_ldi_c(j, JIT_R0, &data[0]); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == -1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldi_d.c b/libguile/lightning/tests/ldi_d.c deleted file mode 100644 index 562e35d99..000000000 --- a/libguile/lightning/tests/ldi_d.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "test.h" - -static double data = -1.5; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - jit_ldi_d(j, JIT_F0, &data); - jit_retr_d(j, JIT_F0); - - double (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == data); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldi_f.c b/libguile/lightning/tests/ldi_f.c deleted file mode 100644 index ff9abd006..000000000 --- a/libguile/lightning/tests/ldi_f.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "test.h" - -static float data = -1.5f; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - jit_ldi_f(j, JIT_F0, &data); - jit_retr_f(j, JIT_F0); - - float (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == data); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldi_i.c b/libguile/lightning/tests/ldi_i.c deleted file mode 100644 index 7270cbcf0..000000000 --- a/libguile/lightning/tests/ldi_i.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "test.h" - -static uint32_t data = 0xffffffff; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - jit_ldi_i(j, JIT_R0, &data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == -1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldi_l.c b/libguile/lightning/tests/ldi_l.c deleted file mode 100644 index 299987049..000000000 --- a/libguile/lightning/tests/ldi_l.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "test.h" - -static uint64_t data = 0xffffffffffffffff; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - jit_ldi_l(j, JIT_R0, &data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == -1); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldi_s.c b/libguile/lightning/tests/ldi_s.c deleted file mode 100644 index 5713370fa..000000000 --- a/libguile/lightning/tests/ldi_s.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "test.h" - -static uint16_t data = 0xffff; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - jit_ldi_s(j, JIT_R0, &data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == -1); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldi_uc.c b/libguile/lightning/tests/ldi_uc.c deleted file mode 100644 index a99af0eda..000000000 --- a/libguile/lightning/tests/ldi_uc.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "test.h" - -static uint8_t data[] = { 0xff, 0x00, 0x42 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - jit_ldi_uc(j, JIT_R0, data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == 0xff); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldi_ui.c b/libguile/lightning/tests/ldi_ui.c deleted file mode 100644 index c0458a7cb..000000000 --- a/libguile/lightning/tests/ldi_ui.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "test.h" - -static uint32_t data[] = { 0xffffffff, 0x00000000, 0x42424242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - jit_ldi_ui(j, JIT_R0, data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == data[0]); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldi_us.c b/libguile/lightning/tests/ldi_us.c deleted file mode 100644 index 3c9ca5122..000000000 --- a/libguile/lightning/tests/ldi_us.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "test.h" - -static uint16_t data[] = { 0xffff, 0x0000, 0x4242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - jit_ldi_us(j, JIT_R0, data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == data[0]); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldr_c.c b/libguile/lightning/tests/ldr_c.c deleted file mode 100644 index d653dea3b..000000000 --- a/libguile/lightning/tests/ldr_c.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint8_t data[] = { 0xff, 0x00, 0x42 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldr_c(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*) = jit_end(j, NULL); - - ASSERT(f(&data[0]) == -1); - ASSERT(f(&data[1]) == 0); - ASSERT(f(&data[2]) == 0x42); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldr_d.c b/libguile/lightning/tests/ldr_d.c deleted file mode 100644 index 8488fb30f..000000000 --- a/libguile/lightning/tests/ldr_d.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static double data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldr_d(j, JIT_F0, JIT_R1); - jit_retr_d(j, JIT_F0); - - double (*f)(void*) = jit_end(j, NULL); - - ASSERT(f(&data[0]) == data[0]); - ASSERT(f(&data[1]) == data[1]); - ASSERT(f(&data[2]) == data[2]); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldr_f.c b/libguile/lightning/tests/ldr_f.c deleted file mode 100644 index 160af85a4..000000000 --- a/libguile/lightning/tests/ldr_f.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static float data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldr_f(j, JIT_F0, JIT_R1); - jit_retr_f(j, JIT_F0); - - float (*f)(void*) = jit_end(j, NULL); - - ASSERT(f(&data[0]) == data[0]); - ASSERT(f(&data[1]) == data[1]); - ASSERT(f(&data[2]) == data[2]); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldr_i.c b/libguile/lightning/tests/ldr_i.c deleted file mode 100644 index 956d254ac..000000000 --- a/libguile/lightning/tests/ldr_i.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint32_t data[] = { 0xffffffff, 0x00000000, 0x42424242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldr_i(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*) = jit_end(j, NULL); - - ASSERT(f(&data[0]) == -1); - ASSERT(f(&data[1]) == 0); - ASSERT(f(&data[2]) == 0x42424242); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldr_l.c b/libguile/lightning/tests/ldr_l.c deleted file mode 100644 index a1a554a57..000000000 --- a/libguile/lightning/tests/ldr_l.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static uint64_t data[] = { 0xffffffffffffffff, 0, 0x4242424212345678 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldr_l(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*) = jit_end(j, NULL); - - ASSERT(f(&data[0]) == -1); - ASSERT(f(&data[1]) == 0); - ASSERT(f(&data[2]) == data[2]); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldr_s.c b/libguile/lightning/tests/ldr_s.c deleted file mode 100644 index 4384c5e00..000000000 --- a/libguile/lightning/tests/ldr_s.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint16_t data[] = { 0xffff, 0x0000, 0x4242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldr_s(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*) = jit_end(j, NULL); - - ASSERT(f(&data[0]) == -1); - ASSERT(f(&data[1]) == 0); - ASSERT(f(&data[2]) == 0x4242); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldr_uc.c b/libguile/lightning/tests/ldr_uc.c deleted file mode 100644 index 41dad79ca..000000000 --- a/libguile/lightning/tests/ldr_uc.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint8_t data[] = { 0xff, 0x00, 0x42 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldr_uc(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*) = jit_end(j, NULL); - - ASSERT(f(&data[0]) == 0xff); - ASSERT(f(&data[1]) == 0); - ASSERT(f(&data[2]) == 0x42); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldr_ui.c b/libguile/lightning/tests/ldr_ui.c deleted file mode 100644 index 7f684f685..000000000 --- a/libguile/lightning/tests/ldr_ui.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static uint32_t data[] = { 0xffffffff, 0x00000000, 0x42424242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldr_ui(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*) = jit_end(j, NULL); - - ASSERT(f(&data[0]) == data[0]); - ASSERT(f(&data[1]) == data[1]); - ASSERT(f(&data[2]) == data[2]); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldr_us.c b/libguile/lightning/tests/ldr_us.c deleted file mode 100644 index e813d650d..000000000 --- a/libguile/lightning/tests/ldr_us.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint16_t data[] = { 0xffff, 0x0000, 0x4242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldr_us(j, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*) = jit_end(j, NULL); - - ASSERT(f(&data[0]) == data[0]); - ASSERT(f(&data[1]) == data[1]); - ASSERT(f(&data[2]) == data[2]); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxi_c.c b/libguile/lightning/tests/ldxi_c.c deleted file mode 100644 index fd208cd58..000000000 --- a/libguile/lightning/tests/ldxi_c.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint8_t data[] = { 0xff, 0x00, 0x42 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldxi_c(j, JIT_R0, JIT_R0, (uintptr_t)&data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == -1); - ASSERT(f(1) == 0); - ASSERT(f(2) == 0x42); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxi_d.c b/libguile/lightning/tests/ldxi_d.c deleted file mode 100644 index 61529233d..000000000 --- a/libguile/lightning/tests/ldxi_d.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static double data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldxi_d(j, JIT_F0, JIT_R0, (uintptr_t)data); - jit_retr_d(j, JIT_F0); - - double (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == data[0]); - ASSERT(f(8) == data[1]); - ASSERT(f(16) == data[2]); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxi_f.c b/libguile/lightning/tests/ldxi_f.c deleted file mode 100644 index 47afc3bed..000000000 --- a/libguile/lightning/tests/ldxi_f.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static float data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldxi_f(j, JIT_F0, JIT_R0, (uintptr_t)data); - jit_retr_f(j, JIT_F0); - - float (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == data[0]); - ASSERT(f(4) == data[1]); - ASSERT(f(8) == data[2]); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxi_i.c b/libguile/lightning/tests/ldxi_i.c deleted file mode 100644 index 005471838..000000000 --- a/libguile/lightning/tests/ldxi_i.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint32_t data[] = { 0xffffffff, 0x00000000, 0x42424242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldxi_i(j, JIT_R0, JIT_R0, (uintptr_t)data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == -1); - ASSERT(f(4) == 0); - ASSERT(f(8) == 0x42424242); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxi_l.c b/libguile/lightning/tests/ldxi_l.c deleted file mode 100644 index c9d07c4c9..000000000 --- a/libguile/lightning/tests/ldxi_l.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static uint64_t data[] = { 0xffffffffffffffff, 0, 0x4242424212345678 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldxi_l(j, JIT_R0, JIT_R0, (uintptr_t)data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == -1); - ASSERT(f(8) == 0); - ASSERT(f(16) == data[2]); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxi_s.c b/libguile/lightning/tests/ldxi_s.c deleted file mode 100644 index 1639f6c22..000000000 --- a/libguile/lightning/tests/ldxi_s.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint16_t data[] = { 0xffff, 0x0000, 0x4242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldxi_s(j, JIT_R0, JIT_R0, (uintptr_t)data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == -1); - ASSERT(f(2) == 0); - ASSERT(f(4) == 0x4242); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxi_uc.c b/libguile/lightning/tests/ldxi_uc.c deleted file mode 100644 index 744768b99..000000000 --- a/libguile/lightning/tests/ldxi_uc.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint8_t data[] = { 0xff, 0x00, 0x42 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldxi_uc(j, JIT_R0, JIT_R0, (uintptr_t)data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0xff); - ASSERT(f(1) == 0); - ASSERT(f(2) == 0x42); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxi_ui.c b/libguile/lightning/tests/ldxi_ui.c deleted file mode 100644 index a25b1b998..000000000 --- a/libguile/lightning/tests/ldxi_ui.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static uint32_t data[] = { 0xffffffff, 0x00000000, 0x42424242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldxi_ui(j, JIT_R0, JIT_R0, (uintptr_t)data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == data[0]); - ASSERT(f(4) == data[1]); - ASSERT(f(8) == data[2]); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxi_us.c b/libguile/lightning/tests/ldxi_us.c deleted file mode 100644 index 1523727ec..000000000 --- a/libguile/lightning/tests/ldxi_us.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint16_t data[] = { 0xffff, 0x0000, 0x4242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ldxi_us(j, JIT_R0, JIT_R0, (uintptr_t)data); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(uintmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == data[0]); - ASSERT(f(2) == data[1]); - ASSERT(f(4) == data[2]); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxr_c.c b/libguile/lightning/tests/ldxr_c.c deleted file mode 100644 index 238e441cf..000000000 --- a/libguile/lightning/tests/ldxr_c.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint8_t data[] = { 0xff, 0x00, 0x42 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_ldxr_c(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*, uintmax_t) = jit_end(j, NULL); - - ASSERT(f(data, 0) == -1); - ASSERT(f(data, 1) == 0); - ASSERT(f(data, 2) == 0x42); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxr_d.c b/libguile/lightning/tests/ldxr_d.c deleted file mode 100644 index b79363730..000000000 --- a/libguile/lightning/tests/ldxr_d.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static double data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_ldxr_d(j, JIT_F0, JIT_R0, JIT_R1); - jit_retr_d(j, JIT_F0); - - double (*f)(void*, uintmax_t) = jit_end(j, NULL); - - ASSERT(f(data, 0) == data[0]); - ASSERT(f(data, 8) == data[1]); - ASSERT(f(data, 16) == data[2]); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxr_f.c b/libguile/lightning/tests/ldxr_f.c deleted file mode 100644 index 8c865a9b2..000000000 --- a/libguile/lightning/tests/ldxr_f.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static float data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_ldxr_f(j, JIT_F0, JIT_R0, JIT_R1); - jit_retr_f(j, JIT_F0); - - float (*f)(void*, uintmax_t) = jit_end(j, NULL); - - ASSERT(f(data, 0) == data[0]); - ASSERT(f(data, 4) == data[1]); - ASSERT(f(data, 8) == data[2]); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxr_i.c b/libguile/lightning/tests/ldxr_i.c deleted file mode 100644 index fb003204b..000000000 --- a/libguile/lightning/tests/ldxr_i.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint32_t data[] = { 0xffffffff, 0x00000000, 0x42424242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_ldxr_i(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*, uintmax_t) = jit_end(j, NULL); - - ASSERT(f(data, 0) == -1); - ASSERT(f(data, 4) == 0); - ASSERT(f(data, 8) == 0x42424242); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxr_l.c b/libguile/lightning/tests/ldxr_l.c deleted file mode 100644 index f139e8e00..000000000 --- a/libguile/lightning/tests/ldxr_l.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static uint64_t data[] = { 0xffffffffffffffff, 0, 0x4242424212345678 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_ldxr_l(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*, uintmax_t) = jit_end(j, NULL); - - ASSERT(f(data, 0) == -1); - ASSERT(f(data, 8) == 0); - ASSERT(f(data, 16) == data[2]); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxr_s.c b/libguile/lightning/tests/ldxr_s.c deleted file mode 100644 index 8ba44c1ff..000000000 --- a/libguile/lightning/tests/ldxr_s.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint16_t data[] = { 0xffff, 0x0000, 0x4242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_ldxr_s(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*, uintmax_t) = jit_end(j, NULL); - - ASSERT(f(data, 0) == -1); - ASSERT(f(data, 2) == 0); - ASSERT(f(data, 4) == 0x4242); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxr_uc.c b/libguile/lightning/tests/ldxr_uc.c deleted file mode 100644 index b6a3cb142..000000000 --- a/libguile/lightning/tests/ldxr_uc.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint8_t data[] = { 0xff, 0x00, 0x42 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_ldxr_uc(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*, uintmax_t) = jit_end(j, NULL); - - ASSERT(f(data, 0) == 0xff); - ASSERT(f(data, 1) == 0); - ASSERT(f(data, 2) == 0x42); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxr_ui.c b/libguile/lightning/tests/ldxr_ui.c deleted file mode 100644 index 04fcb7d77..000000000 --- a/libguile/lightning/tests/ldxr_ui.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "test.h" - -static uint32_t data[] = { 0xffffffff, 0x00000000, 0x42424242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_ldxr_ui(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*, uintmax_t) = jit_end(j, NULL); - - ASSERT(f(data, 0) == data[0]); - ASSERT(f(data, 4) == data[1]); - ASSERT(f(data, 8) == data[2]); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ldxr_us.c b/libguile/lightning/tests/ldxr_us.c deleted file mode 100644 index 12c4d9ca1..000000000 --- a/libguile/lightning/tests/ldxr_us.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static uint16_t data[] = { 0xffff, 0x0000, 0x4242 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_ldxr_us(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - uintmax_t (*f)(void*, uintmax_t) = jit_end(j, NULL); - - ASSERT(f(data, 0) == data[0]); - ASSERT(f(data, 2) == data[1]); - ASSERT(f(data, 4) == data[2]); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/lshi.c b/libguile/lightning/tests/lshi.c deleted file mode 100644 index 41c079a33..000000000 --- a/libguile/lightning/tests/lshi.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_lshi(j, JIT_R0, JIT_R0, 31); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - -#if __WORDSIZE == 32 - ASSERT(f(-0x7f) == 0x80000000); -#else - ASSERT(f(-0x7f) == 0xffffffc080000000); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/lshr.c b/libguile/lightning/tests/lshr.c deleted file mode 100644 index 80edae3b3..000000000 --- a/libguile/lightning/tests/lshr.c +++ /dev/null @@ -1,72 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_lshr(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0x7f, 1) == 0xfe); - ASSERT(f(0x7fff, 2) == 0x1fffc); - ASSERT(f(0x81, 16) == 0x810000); - ASSERT(f(0xff, 15) == 0x7f8000); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); -#if __WORDSIZE == 32 - ASSERT(f(0xffffffff, 8) == 0xffffff00); - ASSERT(f(0x7fffffff, 3) == 0xfffffff8); - ASSERT(f(-0x7f, 31) == 0x80000000); - ASSERT(f(-0x7fff, 30) == 0x40000000); - ASSERT(f(-0x7fffffff, 29) == 0x20000000); - ASSERT(f(0x80000001, 28) == 0x10000000); - ASSERT(f(0x8001, 17) == 0x20000); - ASSERT(f(0x80000001, 18) == 0x40000); - ASSERT(f(-0xffff, 24) == 0x1000000); -#else - ASSERT(f(0xffffffff, 8) == 0xffffffff00); - ASSERT(f(0x7fffffff, 3) == 0x3fffffff8); - ASSERT(f(-0x7f, 31) == 0xffffffc080000000); - ASSERT(f(-0x7fff, 30) == 0xffffe00040000000); - ASSERT(f(-0x7fffffff, 29) == 0xf000000020000000); - ASSERT(f(0x80000001, 28) == 0x800000010000000); - ASSERT(f(0x8001, 17) == 0x100020000); - ASSERT(f(0x80000001, 18) == 0x2000000040000); - ASSERT(f(-0xffff, 24) == 0xffffff0001000000); - ASSERT(f(0x7f, 33) == 0xfe00000000); - ASSERT(f(0x7ffff, 34) == 0x1ffffc00000000); - ASSERT(f(0x7fffffff, 35) == 0xfffffff800000000); - ASSERT(f(-0x7f, 63) == 0x8000000000000000); - ASSERT(f(-0x7fff, 62) == 0x4000000000000000); - ASSERT(f(-0x7fffffff, 61) == 0x2000000000000000); - ASSERT(f(0x80000001, 60) == 0x1000000000000000); - ASSERT(f(0x81, 48) == 0x81000000000000); - ASSERT(f(0x8001, 49) == 0x2000000000000); - ASSERT(f(0x80000001, 40) == 0x10000000000); - ASSERT(f(0xff, 47) == 0x7f800000000000); - ASSERT(f(0xffff0001, 56) == 0x100000000000000); - ASSERT(f(0xffffffff, 40) == 0xffffff0000000000); - ASSERT(f(0x7fffffffff, 33) == 0xfffffffe00000000); - ASSERT(f(-0x7fffffffff, 63) == 0x8000000000000000); - ASSERT(f(0x8000000001, 48) == 0x1000000000000); - ASSERT(f(0xffffffffff, 47) == 0xffff800000000000); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/mov_addr.c b/libguile/lightning/tests/mov_addr.c deleted file mode 100644 index 0d7d9e071..000000000 --- a/libguile/lightning/tests/mov_addr.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "test.h" - -static uint64_t thing = 0x123456789abcdef0; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - jit_patch_there(j, jit_mov_addr(j, JIT_R0), &thing); - jit_retr(j, JIT_R0); - - void* (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == &thing); - ASSERT(*(uint64_t*)f() == thing); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/movi_d.c b/libguile/lightning/tests/movi_d.c deleted file mode 100644 index 58ec949fc..000000000 --- a/libguile/lightning/tests/movi_d.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - jit_movi_d(j, JIT_F0, 3.14159); - jit_retr_d(j, JIT_F0); - - double (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == 3.14159); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/movi_f.c b/libguile/lightning/tests/movi_f.c deleted file mode 100644 index 0b92f9242..000000000 --- a/libguile/lightning/tests/movi_f.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - jit_movi_f(j, JIT_F0, 3.14159f); - jit_retr_f(j, JIT_F0); - - float (*f)(void) = jit_end(j, NULL); - - ASSERT(f() == 3.14159f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/mulr.c b/libguile/lightning/tests/mulr.c deleted file mode 100644 index 4cd28e618..000000000 --- a/libguile/lightning/tests/mulr.c +++ /dev/null @@ -1,67 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_mulr(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0x7fffffff, 1) == 0x7fffffff); - ASSERT(f(1, 0x7fffffff) == 0x7fffffff); - ASSERT(f(0x80000000, 1) == 0x80000000); - ASSERT(f(1, 0x80000000) == 0x80000000); - ASSERT(f(0x7fffffff, 2) == 0xfffffffe); - ASSERT(f(2, 0x7fffffff) == 0xfffffffe); - ASSERT(f(0x7fffffff, 0) == 0); - ASSERT(f(0, 0x7fffffff) == 0); -#if __WORDSIZE == 32 - ASSERT(f(0x80000000, 2) == 0); - ASSERT(f(2, 0x80000000) == 0); - ASSERT(f(0x7fffffff, 0x80000000) == 0x80000000); - ASSERT(f(0x80000000, 0x7fffffff) == 0x80000000); - ASSERT(f(0x7fffffff, 0xffffffff) == 0x80000001); - ASSERT(f(0xffffffff, 0x7fffffff) == 0x80000001); - ASSERT(f(0xffffffff, 0xffffffff) == 1); -#else - ASSERT(f(0x80000000, 2) == 0x100000000); - ASSERT(f(2, 0x80000000) == 0x100000000); - ASSERT(f(0x7fffffff, 0x80000000) == 0x3fffffff80000000); - ASSERT(f(0x80000000, 0x7fffffff) == 0x3fffffff80000000); - ASSERT(f(0x7fffffff, 0xffffffff) == 0x7ffffffe80000001); - ASSERT(f(0xffffffff, 0x7fffffff) == 0x7ffffffe80000001); - ASSERT(f(0xffffffff, 0xffffffff) == 0xfffffffe00000001); - ASSERT(f(0x7fffffffffffffff, 1) == 0x7fffffffffffffff); - ASSERT(f(1, 0x7fffffffffffffff) == 0x7fffffffffffffff); - ASSERT(f(0x8000000000000000, 1) == 0x8000000000000000); - ASSERT(f(1, 0x8000000000000000) == 0x8000000000000000); - ASSERT(f(0x7fffffffffffffff, 2) == 0xfffffffffffffffe); - ASSERT(f(2, 0x7fffffffffffffff) == 0xfffffffffffffffe); - ASSERT(f(0x8000000000000000, 2) == 0); - ASSERT(f(2, 0x8000000000000000) == 0); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == 0x8000000000000000); - ASSERT(f(0x8000000000000000, 0x7fffffffffffffff) == 0x8000000000000000); - ASSERT(f(0x7fffffffffffffff, 0xffffffffffffffff) == 0x8000000000000001); - ASSERT(f(0xffffffffffffffff, 0x7fffffffffffffff) == 0x8000000000000001); - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == 1); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/mulr_d.c b/libguile/lightning/tests/mulr_d.c deleted file mode 100644 index 0b4fa18ad..000000000 --- a/libguile/lightning/tests/mulr_d.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_mulr_d(j, JIT_F0, JIT_F0, JIT_F1); - jit_retr_d(j, JIT_F0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - double (*f)(double, double) = ret; - ASSERT(f(-0.5, 0.5) == -0.25); - ASSERT(f(0.25, 0.75) == 0.1875); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/mulr_f.c b/libguile/lightning/tests/mulr_f.c deleted file mode 100644 index ed716fa5f..000000000 --- a/libguile/lightning/tests/mulr_f.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_mulr_f(j, JIT_F0, JIT_F0, JIT_F1); - jit_retr_f(j, JIT_F0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - float (*f)(float, float) = ret; - ASSERT(f(-0.5f, 0.5f) == -0.25f); - ASSERT(f(0.25f, 0.75f) == 0.1875f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/negr.c b/libguile/lightning/tests/negr.c deleted file mode 100644 index 5a5c5c1d2..000000000 --- a/libguile/lightning/tests/negr.c +++ /dev/null @@ -1,43 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_negr(j, JIT_R0, JIT_R0); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - - ASSERT(f(0) == 0); -#if __WORDSIZE == 32 - ASSERT(f(1) == 0xffffffff); - ASSERT(f(0xffffffff) == 1); - ASSERT(f(0x80000000) == 0x80000000); - ASSERT(f(0x7fffffff) == 0x80000001); - ASSERT(f(0x80000001) == 0x7fffffff); -#else - ASSERT(f(1) == 0xffffffffffffffff); - ASSERT(f(0xffffffff) == 0xffffffff00000001); - ASSERT(f(0x80000000) == 0xffffffff80000000); - ASSERT(f(0x7fffffff) == 0xffffffff80000001); - ASSERT(f(0x80000001) == 0xffffffff7fffffff); - ASSERT(f(0xffffffffffffffff) == 1); - ASSERT(f(0x8000000000000000) == 0x8000000000000000); - ASSERT(f(0x7fffffffffffffff) == 0x8000000000000001); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/negr_d.c b/libguile/lightning/tests/negr_d.c deleted file mode 100644 index 1af229be6..000000000 --- a/libguile/lightning/tests/negr_d.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_negr_d(j, JIT_F0, JIT_F0); - jit_retr_d(j, JIT_F0); - - double (*f)(double) = jit_end(j, NULL); - - ASSERT(f(0.0) == -0.0); - ASSERT(f(0.5) == -0.5); - ASSERT(f(1.0 / 0.0) == -1.0 / 0.0); - ASSERT(f(-1.25) == 1.25); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/negr_f.c b/libguile/lightning/tests/negr_f.c deleted file mode 100644 index cdc1ccdcc..000000000 --- a/libguile/lightning/tests/negr_f.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_negr_f(j, JIT_F0, JIT_F0); - jit_retr_f(j, JIT_F0); - - float (*f)(float) = jit_end(j, NULL); - - ASSERT(f(0.0f) == -0.0f); - ASSERT(f(0.5f) == -0.5f); - ASSERT(f(1.0f / 0.0f) == -1.0f / 0.0f); - ASSERT(f(-1.25f) == 1.25f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/nop.c b/libguile/lightning/tests/nop.c deleted file mode 100644 index 16c5c8a7e..000000000 --- a/libguile/lightning/tests/nop.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - size_t total = 0; - char *start = jit_address(j); - for (size_t i = 1; i < 10; total += i, i++) - jit_nop(j, i); - char *end = jit_address(j); - ASSERT(end - start == total); - jit_reti(j, 42); - - intmax_t (*f)(void) = jit_end(j, NULL); - ASSERT(f() == 42); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/ori.c b/libguile/lightning/tests/ori.c deleted file mode 100644 index 59e91b95a..000000000 --- a/libguile/lightning/tests/ori.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_ori(j, JIT_R0, JIT_R0, 1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t) = ret; - - ASSERT(f(0x7fffffff) == 0x7fffffff); - ASSERT(f(0x80000000) == 0x80000001); -#if __WORDSIZE == 64 - ASSERT(f(0x7fffffffffffffff) == 0x7fffffffffffffff); - ASSERT(f(0x8000000000000000) == 0x8000000000000001); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/orr.c b/libguile/lightning/tests/orr.c deleted file mode 100644 index 6c98544b4..000000000 --- a/libguile/lightning/tests/orr.c +++ /dev/null @@ -1,51 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_orr(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0x7fffffff, 1) == 0x7fffffff); - ASSERT(f(1, 0x7fffffff) == 0x7fffffff); - ASSERT(f(0x80000000, 1) == 0x80000001); - ASSERT(f(1, 0x80000000) == 0x80000001); - ASSERT(f(0x7fffffff, 0x80000000) == 0xffffffff); - ASSERT(f(0x80000000, 0x7fffffff) == 0xffffffff); - ASSERT(f(0x7fffffff, 0xffffffff) == 0xffffffff); - ASSERT(f(0xffffffff, 0x7fffffff) == 0xffffffff); - ASSERT(f(0xffffffff, 0xffffffff) == 0xffffffff); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); - ASSERT(f(0, 0x7fffffff) == 0x7fffffff); -#if __WORDSIZE == 64 - ASSERT(f(0x7fffffffffffffff, 1) == 0x7fffffffffffffff); - ASSERT(f(1, 0x7fffffffffffffff) == 0x7fffffffffffffff); - ASSERT(f(0x8000000000000000, 1) == 0x8000000000000001); - ASSERT(f(1, 0x8000000000000000) == 0x8000000000000001); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == 0xffffffffffffffff); - ASSERT(f(0x8000000000000000, 0x7fffffffffffffff) == 0xffffffffffffffff); - ASSERT(f(0x7fffffffffffffff, 0xffffffffffffffff) == 0xffffffffffffffff); - ASSERT(f(0xffffffffffffffff, 0x7fffffffffffffff) == 0xffffffffffffffff); - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == 0xffffffffffffffff); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/pushpop.c b/libguile/lightning/tests/pushpop.c deleted file mode 100644 index 9a464c3ed..000000000 --- a/libguile/lightning/tests/pushpop.c +++ /dev/null @@ -1,44 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - const jit_gpr_t gpr[] = { JIT_R0, JIT_R1, JIT_R2, JIT_V0, JIT_V1, JIT_V2 }; - const jit_fpr_t fpr[] = { JIT_F0, JIT_F1, JIT_F2 }; - - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - for (int i=0; i<6; i++) - jit_pushr(j, gpr[i]); - for (int i=0; i<3; i++) - jit_pushr_d(j, fpr[i]); - - // Stomple registers. - for (int i=0; i<6; i++) - jit_movi(j, gpr[i], 0xcabba9e5); - for (int i=0; i<3; i++) - jit_extr_d(j, fpr[i], gpr[i]); - - for (int i=2; i>=0; i--) - jit_popr_d(j, fpr[i]); - for (int i=5; i>=0; i--) - jit_popr(j, gpr[i]); - - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - ASSERT(f(42) == 42); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/qdivr.c b/libguile/lightning/tests/qdivr.c deleted file mode 100644 index 37871f375..000000000 --- a/libguile/lightning/tests/qdivr.c +++ /dev/null @@ -1,69 +0,0 @@ -#include "test.h" - -static void -maybe_save(jit_state_t *j, jit_gpr_t reg) -{ - if (jit_class(reg.bits) & jit_class_sav) - jit_pushr(j, reg); -} - -static void -maybe_restore(jit_state_t *j, jit_gpr_t reg) -{ - if (jit_class(reg.bits) & jit_class_sav) - jit_popr(j, reg); -} - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { - JIT_ARG_ABI_POINTER, JIT_ARG_ABI_POINTER, - JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX - }; - jit_arg_t args[4]; - const jit_anyreg_t regs[] = { - { .gpr=JIT_R0 }, { .gpr=JIT_R1 }, - { .gpr=JIT_R2 }, { .gpr=JIT_V0 } - }; - - maybe_save(j, JIT_V0); - maybe_save(j, JIT_V1); - maybe_save(j, JIT_V2); - - jit_receive(j, 4, abi, args); - jit_load_args(j, 4, abi, args, regs); - - jit_qdivr(j, JIT_V1, JIT_V2, JIT_R2, JIT_V0); - jit_str(j, JIT_R0, JIT_V1); - jit_str(j, JIT_R1, JIT_V2); - - maybe_restore(j, JIT_V2); - maybe_restore(j, JIT_V1); - maybe_restore(j, JIT_V0); - - jit_ret(j); - - size_t size = 0; - void* ret = jit_end(j, &size); - - void (*f)(intmax_t*, intmax_t*, intmax_t, intmax_t) = ret; - -#define QDIV(a, b, c, d) \ - do { \ - intmax_t C = 0, D = 0; f(&C, &D, a, b); ASSERT(C == c); ASSERT(D == d); \ - } while (0) - - QDIV(10, 3, 3, 1); - QDIV(-33, 9, -3, -6); - QDIV(-41, -7, 5, -6); - QDIV(65536, 4096, 16, 0); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/qdivr_u.c b/libguile/lightning/tests/qdivr_u.c deleted file mode 100644 index 84f101f56..000000000 --- a/libguile/lightning/tests/qdivr_u.c +++ /dev/null @@ -1,67 +0,0 @@ -#include "test.h" - -static void -maybe_save(jit_state_t *j, jit_gpr_t reg) -{ - if (jit_class(reg.bits) & jit_class_sav) - jit_pushr(j, reg); -} - -static void -maybe_restore(jit_state_t *j, jit_gpr_t reg) -{ - if (jit_class(reg.bits) & jit_class_sav) - jit_popr(j, reg); -} - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { - JIT_ARG_ABI_POINTER, JIT_ARG_ABI_POINTER, - JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX - }; - jit_arg_t args[4]; - const jit_anyreg_t regs[] = { - { .gpr=JIT_R0 }, { .gpr=JIT_R1 }, - { .gpr=JIT_R2 }, { .gpr=JIT_V0 } - }; - - maybe_save(j, JIT_V0); - maybe_save(j, JIT_V1); - maybe_save(j, JIT_V2); - - jit_receive(j, 4, abi, args); - jit_load_args(j, 4, abi, args, regs); - - jit_qdivr_u(j, JIT_V1, JIT_V2, JIT_R2, JIT_V0); - jit_str(j, JIT_R0, JIT_V1); - jit_str(j, JIT_R1, JIT_V2); - - maybe_restore(j, JIT_V2); - maybe_restore(j, JIT_V1); - maybe_restore(j, JIT_V0); - - jit_ret(j); - - size_t size = 0; - void* ret = jit_end(j, &size); - - void (*f)(intmax_t*, intmax_t*, intmax_t, intmax_t) = ret; - -#define QDIV(a, b, c, d) \ - do { \ - intmax_t C = 0, D = 0; f(&C, &D, a, b); ASSERT(C == c); ASSERT(D == d); \ - } while (0) - - QDIV(-1, -2, 1, 1); - QDIV(-2, -5, 1, 3); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/qmulr.c b/libguile/lightning/tests/qmulr.c deleted file mode 100644 index 7e3d4b0e8..000000000 --- a/libguile/lightning/tests/qmulr.c +++ /dev/null @@ -1,82 +0,0 @@ -#include "test.h" - -static void -maybe_save(jit_state_t *j, jit_gpr_t reg) -{ - if (jit_class(reg.bits) & jit_class_sav) - jit_pushr(j, reg); -} - -static void -maybe_restore(jit_state_t *j, jit_gpr_t reg) -{ - if (jit_class(reg.bits) & jit_class_sav) - jit_popr(j, reg); -} - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { - JIT_ARG_ABI_POINTER, JIT_ARG_ABI_POINTER, - JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX - }; - jit_arg_t args[4]; - const jit_anyreg_t regs[] = { - { .gpr=JIT_R0 }, { .gpr=JIT_R1 }, - { .gpr=JIT_R2 }, { .gpr=JIT_V0 } - }; - - maybe_save(j, JIT_V0); - maybe_save(j, JIT_V1); - maybe_save(j, JIT_V2); - - jit_receive(j, 4, abi, args); - jit_load_args(j, 4, abi, args, regs); - - jit_qmulr(j, JIT_V1, JIT_V2, JIT_R2, JIT_V0); - jit_str(j, JIT_R0, JIT_V1); - jit_str(j, JIT_R1, JIT_V2); - - maybe_restore(j, JIT_V2); - maybe_restore(j, JIT_V1); - maybe_restore(j, JIT_V0); - - jit_ret(j); - - size_t size = 0; - void* ret = jit_end(j, &size); - - void (*f)(intmax_t*, intmax_t*, intmax_t, intmax_t) = ret; - -#define QMUL(a, b, c, d) \ - do { \ - intmax_t C = 0, D = 0; f(&C, &D, a, b); ASSERT(C == c); ASSERT(D == d); \ - } while (0) - - QMUL(-2, -1, 2, 0); - QMUL(0, -1, 0, 0); - QMUL(-1, 0, 0, 0); - QMUL(1, -1, -1, -1); -#if __WORDSIZE == 32 - QMUL(0x7ffff, 0x7ffff, 0xfff00001, 0x3f); - QMUL(0x80000000, -2, 0, 1); - QMUL(0x80000000, 2, 0, -1); - QMUL(0x80000001, 3, 0x80000003, -2); - QMUL(0x80000001, -3, 0x7ffffffd, 1); -#else - QMUL(0x7ffffffff, 0x7ffffffff, 0xfffffff000000001, 0x3f); - QMUL(0x8000000000000000, -2, 0, 1); - QMUL(0x8000000000000000, 2, 0, -1); - QMUL(0x8000000000000001, 3, 0x8000000000000003, -2); - QMUL(0x8000000000000001, -3, 0x7ffffffffffffffd, 1); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/qmulr_u.c b/libguile/lightning/tests/qmulr_u.c deleted file mode 100644 index 6ac5cd057..000000000 --- a/libguile/lightning/tests/qmulr_u.c +++ /dev/null @@ -1,70 +0,0 @@ -#include "test.h" - -static void -maybe_save(jit_state_t *j, jit_gpr_t reg) -{ - if (jit_class(reg.bits) & jit_class_sav) - jit_pushr(j, reg); -} - -static void -maybe_restore(jit_state_t *j, jit_gpr_t reg) -{ - if (jit_class(reg.bits) & jit_class_sav) - jit_popr(j, reg); -} - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { - JIT_ARG_ABI_POINTER, JIT_ARG_ABI_POINTER, - JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX - }; - jit_arg_t args[4]; - const jit_anyreg_t regs[] = { - { .gpr=JIT_R0 }, { .gpr=JIT_R1 }, - { .gpr=JIT_R2 }, { .gpr=JIT_V0 } - }; - - maybe_save(j, JIT_V0); - maybe_save(j, JIT_V1); - maybe_save(j, JIT_V2); - - jit_receive(j, 4, abi, args); - jit_load_args(j, 4, abi, args, regs); - - jit_qmulr_u(j, JIT_V1, JIT_V2, JIT_R2, JIT_V0); - jit_str(j, JIT_R0, JIT_V1); - jit_str(j, JIT_R1, JIT_V2); - - maybe_restore(j, JIT_V2); - maybe_restore(j, JIT_V1); - maybe_restore(j, JIT_V0); - - jit_ret(j); - - size_t size = 0; - void* ret = jit_end(j, &size); - - void (*f)(intmax_t*, intmax_t*, intmax_t, intmax_t) = ret; - -#define UQMUL(a, b, c, d) \ - do { \ - intmax_t C = 0, D = 0; f(&C, &D, a, b); ASSERT(C == c); ASSERT(D == d); \ - } while (0) - -#if __WORDSIZE == 32 - UQMUL(0xffffff, 0xffffff, 0xfe000001, 0xffff); -#else - UQMUL(0xffffffffff, 0xffffffffff, 0xfffffe0000000001, 0xffff); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/remr.c b/libguile/lightning/tests/remr.c deleted file mode 100644 index a06e2407f..000000000 --- a/libguile/lightning/tests/remr.c +++ /dev/null @@ -1,63 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_remr(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0x7fffffff, 1) == 0); - ASSERT(f(1, 0x7fffffff) == 1); - ASSERT(f(0x80000000, 1) == 0); - ASSERT(f(1, 0x80000000) == 1); - ASSERT(f(0x7fffffff, 2) == 1); - ASSERT(f(2, 0x7fffffff) == 2); - ASSERT(f(0x80000000, 2) == 0); - ASSERT(f(2, 0x80000000) == 2); - ASSERT(f(0x7fffffff, 0x80000000) == 0x7fffffff); - ASSERT(f(0, 0x7fffffff) == 0); - ASSERT(f(0xffffffff, 0xffffffff) == 0); - -#if __WORDSIZE == 32 - ASSERT(f(0x80000000, 0x7fffffff) == 0xffffffff); - ASSERT(f(0x7fffffff, 0xffffffff) == 0); - ASSERT(f(0xffffffff, 0x7fffffff) == 0xffffffff); -#else - ASSERT(f(0x80000000, 0x7fffffff) == 1); - ASSERT(f(0x7fffffff, 0xffffffff) == 0x7fffffff); - ASSERT(f(0xffffffff, 0x7fffffff) == 1); - ASSERT(f(0x7fffffffffffffff, 1) == 0); - ASSERT(f(1, 0x7fffffffffffffff) == 1); - ASSERT(f(0x8000000000000000, 1) == 0); - ASSERT(f(1, 0x8000000000000000) == 1); - ASSERT(f(0x7fffffffffffffff, 2) == 1); - ASSERT(f(2, 0x7fffffffffffffff) == 2); - ASSERT(f(0x8000000000000000, 2) == 0); - ASSERT(f(2, 0x8000000000000000) == 2); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == 0x7fffffffffffffff); - ASSERT(f(0x8000000000000000, 0x7fffffffffffffff) == 0xffffffffffffffff); - ASSERT(f(0x7fffffffffffffff, 0xffffffffffffffff) == 0); - ASSERT(f(0xffffffffffffffff, 0x7fffffffffffffff) == 0xffffffffffffffff); - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/remr_u.c b/libguile/lightning/tests/remr_u.c deleted file mode 100644 index 025018142..000000000 --- a/libguile/lightning/tests/remr_u.c +++ /dev/null @@ -1,59 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_remr_u(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0x7fffffff, 1) == 0); - ASSERT(f(1, 0x7fffffff) == 1); - ASSERT(f(0x80000000, 1) == 0); - ASSERT(f(1, 0x80000000) == 1); - ASSERT(f(0x7fffffff, 2) == 1); - ASSERT(f(2, 0x7fffffff) == 2); - ASSERT(f(0x80000000, 2) == 0); - ASSERT(f(2, 0x80000000) == 2); - ASSERT(f(0x7fffffff, 0x80000000) == 0x7fffffff); - ASSERT(f(0x80000000, 0x7fffffff) == 1); - ASSERT(f(0, 0x7fffffff) == 0); - ASSERT(f(0x7fffffff, 0xffffffff) == 0x7fffffff); - ASSERT(f(0xffffffff, 0x7fffffff) == 1); - ASSERT(f(0xffffffff, 0xffffffff) == 0); - -#if __WORDSIZE != 32 - ASSERT(f(0x7fffffffffffffff, 1) == 0); - ASSERT(f(1, 0x7fffffffffffffff) == 1); - ASSERT(f(0x8000000000000000, 1) == 0); - ASSERT(f(1, 0x8000000000000000) == 1); - ASSERT(f(0x7fffffffffffffff, 2) == 1); - ASSERT(f(2, 0x7fffffffffffffff) == 2); - ASSERT(f(0x8000000000000000, 2) == 0); - ASSERT(f(2, 0x8000000000000000) == 2); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == 0x7fffffffffffffff); - ASSERT(f(0x8000000000000000, 0x7fffffffffffffff) == 1); - ASSERT(f(0x7fffffffffffffff, 0xffffffffffffffff) == 0x7fffffffffffffff); - ASSERT(f(0xffffffffffffffff, 0x7fffffffffffffff) == 1); - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/rshi.c b/libguile/lightning/tests/rshi.c deleted file mode 100644 index 0f2cdfda7..000000000 --- a/libguile/lightning/tests/rshi.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_rshi(j, JIT_R0, JIT_R0, 31); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - -#if __WORDSIZE == 32 - ASSERT(f(0x80000000) == -1); -#else - ASSERT(f(0x80000000) == 1); - ASSERT(f(0x8000000000000000) == 0xffffffff00000000); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/rshi_u.c b/libguile/lightning/tests/rshi_u.c deleted file mode 100644 index 141c41c09..000000000 --- a/libguile/lightning/tests/rshi_u.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_rshi_u(j, JIT_R0, JIT_R0, 31); - jit_retr(j, JIT_R0); - - intmax_t (*f)(intmax_t) = jit_end(j, NULL); - -#if __WORDSIZE == 32 - ASSERT(f(0x80000000) == 1); -#else - ASSERT(f(0x80000000) == 1); - ASSERT(f(0x8000000000000000) == 0x100000000); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/rshr.c b/libguile/lightning/tests/rshr.c deleted file mode 100644 index ef702b630..000000000 --- a/libguile/lightning/tests/rshr.c +++ /dev/null @@ -1,66 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_rshr(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0xfe, 1) == 0x7f); - ASSERT(f(0x1fffc, 2) == 0x7fff); - ASSERT(f(0x40000000, 30) == 1); - ASSERT(f(0x20000000, 29) == 1); - ASSERT(f(0x10000000, 28) == 1); - ASSERT(f(0x810000, 16) == 0x81); - ASSERT(f(0x20000, 17) == 1); - ASSERT(f(0x40000, 18) == 1); - ASSERT(f(0x7f8000, 15) == 0xff); - ASSERT(f(0x1000000, 24) == 1); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); -#if __WORDSIZE == 32 - ASSERT(f(0xfffffff8, 3) == 0xffffffff); - ASSERT(f(0x80000000, 31) == 0xffffffff); - ASSERT(f(0xffffff00, 8) == 0xffffffff); -#else - ASSERT(f(0x3fffffff8, 3) == 0x7fffffff); - ASSERT(f(0xffffffc080000000, 31) == 0xffffffffffffff81); - ASSERT(f(0xffffff00, 8) == 0xffffff); - ASSERT(f(0xfe00000000, 33) == 0x7f); - ASSERT(f(0x1ffffc00000000, 34) == 0x7ffff); - ASSERT(f(0xfffffff800000000, 29) == 0xffffffffffffffc0); - ASSERT(f(0x8000000000000000, 63) == 0xffffffffffffffff); - ASSERT(f(0x4000000000000000, 62) == 1); - ASSERT(f(0x2000000000000000, 61) == 1); - ASSERT(f(0x1000000000000000, 60) == 1); - ASSERT(f(0x81000000000000, 48) == 0x81); - ASSERT(f(0x2000000000000, 49) == 1); - ASSERT(f(0x10000000000, 40) == 1); - ASSERT(f(0x7f800000000000, 47) == 0xff); - ASSERT(f(0x100000000000000, 56) == 1); - ASSERT(f(0xffffff0000000000, 40) == 0xffffffffffffffff); - ASSERT(f(0xfffffffe00000000, 33) == 0xffffffffffffffff); - ASSERT(f(0x8000000000000001, 63) == 0xffffffffffffffff); - ASSERT(f(0x1000000000000, 48) == 1); - ASSERT(f(0xffff800000000000, 47) == 0xffffffffffffffff); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/rshr_u.c b/libguile/lightning/tests/rshr_u.c deleted file mode 100644 index 268117fe5..000000000 --- a/libguile/lightning/tests/rshr_u.c +++ /dev/null @@ -1,65 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_rshr_u(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0xfe, 1) == 0x7f); - ASSERT(f(0x1fffc, 2) == 0x7fff); - ASSERT(f(0x80000000, 31) == 1); - ASSERT(f(0x40000000, 30) == 1); - ASSERT(f(0x20000000, 29) == 1); - ASSERT(f(0x10000000, 28) == 1); - ASSERT(f(0x810000, 16) == 0x81); - ASSERT(f(0x20000, 17) == 1); - ASSERT(f(0x40000, 18) == 1); - ASSERT(f(0x7f8000, 15) == 0xff); - ASSERT(f(0x1000000, 24) == 1); - ASSERT(f(0xffffff00, 8) == 0xffffff); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); -#if __WORDSIZE == 32 - ASSERT(f(0xfffffff8, 3) == 0x1fffffff); -#else - ASSERT(f(0x3fffffff8, 3) == 0x7fffffff); - ASSERT(f(0xffffffc080000000, 31) == 0x1ffffff81); - ASSERT(f(0xfe00000000, 33) == 0x7f); - ASSERT(f(0x1ffffc00000000, 34) == 0x7ffff); - ASSERT(f(0xfffffff800000000, 29) == 0x7ffffffc0); - ASSERT(f(0x8000000000000000, 63) == 1); - ASSERT(f(0x4000000000000000, 62) == 1); - ASSERT(f(0x2000000000000000, 61) == 1); - ASSERT(f(0x1000000000000000, 60) == 1); - ASSERT(f(0x81000000000000, 48) == 0x81); - ASSERT(f(0x2000000000000, 49) == 1); - ASSERT(f(0x10000000000, 40) == 1); - ASSERT(f(0x7f800000000000, 47) == 0xff); - ASSERT(f(0x100000000000000, 56) == 1); - ASSERT(f(0xffffff0000000000, 40) == 0xffffff); - ASSERT(f(0xfffffffe00000000, 33) == 0x7fffffff); - ASSERT(f(0x8000000000000001, 63) == 1); - ASSERT(f(0x1000000000000, 48) == 1); - ASSERT(f(0xffff800000000000, 47) == 0x1ffff); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/sqrtr_d.c b/libguile/lightning/tests/sqrtr_d.c deleted file mode 100644 index cb17b56ac..000000000 --- a/libguile/lightning/tests/sqrtr_d.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_sqrtr_d(j, JIT_F0, JIT_F0); - jit_retr_d(j, JIT_F0); - - double (*f)(double) = jit_end(j, NULL); - - ASSERT(f(0.0) == 0.0); - ASSERT(f(4.0) == 2.0); - ASSERT(f(-4.0) != f(-4.0)); // nan -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/sqrtr_f.c b/libguile/lightning/tests/sqrtr_f.c deleted file mode 100644 index ffa9211af..000000000 --- a/libguile/lightning/tests/sqrtr_f.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_sqrtr_f(j, JIT_F0, JIT_F0); - jit_retr_f(j, JIT_F0); - - float (*f)(float) = jit_end(j, NULL); - - ASSERT(f(0.0) == 0.0); - ASSERT(f(4.0) == 2.0); - ASSERT(f(-4.0) != f(-4.0)); // nan -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/sti_c.c b/libguile/lightning/tests/sti_c.c deleted file mode 100644 index 10b7b6a91..000000000 --- a/libguile/lightning/tests/sti_c.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static uint8_t data[] = { 0x12, 0x00, 0x34 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INT8 }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_sti_c(j, &data[1], JIT_R1); - jit_ret(j); - - void (*f)(int8_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x12); - ASSERT(data[1] == 0x00); - ASSERT(data[2] == 0x34); - f(-1); - ASSERT(data[0] == 0x12); - ASSERT(data[1] == 0xff); - ASSERT(data[2] == 0x34); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/sti_d.c b/libguile/lightning/tests/sti_d.c deleted file mode 100644 index 2c51827f5..000000000 --- a/libguile/lightning/tests/sti_d.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static double data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_sti_d(j, &data[1], JIT_F0); - jit_ret(j); - - void (*f)(double) = jit_end(j, NULL); - - ASSERT(data[0] == -1.0); - ASSERT(data[1] == 0.0); - ASSERT(data[2] == 0.5); - f(42.5); - ASSERT(data[0] == -1.0); - ASSERT(data[1] == 42.5); - ASSERT(data[2] == 0.5); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/sti_f.c b/libguile/lightning/tests/sti_f.c deleted file mode 100644 index 1e3674a4f..000000000 --- a/libguile/lightning/tests/sti_f.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static float data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_sti_f(j, &data[1], JIT_F0); - jit_ret(j); - - void (*f)(float) = jit_end(j, NULL); - - ASSERT(data[0] == -1.0f); - ASSERT(data[1] == 0.0f); - ASSERT(data[2] == 0.5f); - f(42.5f); - ASSERT(data[0] == -1.0f); - ASSERT(data[1] == 42.5f); - ASSERT(data[2] == 0.5f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/sti_i.c b/libguile/lightning/tests/sti_i.c deleted file mode 100644 index b0e6d83f7..000000000 --- a/libguile/lightning/tests/sti_i.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static uint32_t data[] = { 0x12121212, 0x00000000, 0x34343434 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INT32 }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_sti_i(j, &data[1], JIT_R1); - jit_ret(j); - - void (*f)(int32_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x12121212); - ASSERT(data[1] == 0x00); - ASSERT(data[2] == 0x34343434); - f(-1); - ASSERT(data[0] == 0x12121212); - ASSERT(data[1] == 0xffffffff); - ASSERT(data[2] == 0x34343434); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/sti_l.c b/libguile/lightning/tests/sti_l.c deleted file mode 100644 index e997b014f..000000000 --- a/libguile/lightning/tests/sti_l.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static uint64_t data[] = { 0x1212121212121212, 0, 0x3434343434343434 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INT64 }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_sti_l(j, &data[1], JIT_R1); - jit_ret(j); - - void (*f)(int64_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x1212121212121212); - ASSERT(data[1] == 0x00); - ASSERT(data[2] == 0x3434343434343434); - f(-1); - ASSERT(data[0] == 0x1212121212121212); - ASSERT(data[1] == 0xffffffffffffffff); - ASSERT(data[2] == 0x3434343434343434); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/sti_s.c b/libguile/lightning/tests/sti_s.c deleted file mode 100644 index 95cfd3396..000000000 --- a/libguile/lightning/tests/sti_s.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static uint16_t data[] = { 0x1212, 0x0000, 0x3434 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INT16 }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R1 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_sti_s(j, &data[1], JIT_R1); - jit_ret(j); - - void (*f)(int16_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x1212); - ASSERT(data[1] == 0); - ASSERT(data[2] == 0x3434); - f(-1); - ASSERT(data[0] == 0x1212); - ASSERT(data[1] == 0xffff); - ASSERT(data[2] == 0x3434); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/str_c.c b/libguile/lightning/tests/str_c.c deleted file mode 100644 index eb04a85df..000000000 --- a/libguile/lightning/tests/str_c.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static uint8_t data[] = { 0x12, 0x00, 0x34 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INT8 }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_str_c(j, JIT_R0, JIT_R1); - jit_ret(j); - - void (*f)(void*, int8_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x12); - ASSERT(data[1] == 0x00); - ASSERT(data[2] == 0x34); - f(&data[1], -1); - ASSERT(data[0] == 0x12); - ASSERT(data[1] == 0xff); - ASSERT(data[2] == 0x34); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/str_d.c b/libguile/lightning/tests/str_d.c deleted file mode 100644 index 04e5aed57..000000000 --- a/libguile/lightning/tests/str_d.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static double data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .fpr=JIT_F0 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_str_d(j, JIT_R0, JIT_F0); - jit_ret(j); - - void (*f)(void*, double) = jit_end(j, NULL); - - ASSERT(data[0] == -1.0); - ASSERT(data[1] == 0.0); - ASSERT(data[2] == 0.5); - f(&data[1], 42.5); - ASSERT(data[0] == -1.0); - ASSERT(data[1] == 42.5); - ASSERT(data[2] == 0.5); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/str_f.c b/libguile/lightning/tests/str_f.c deleted file mode 100644 index 167fac038..000000000 --- a/libguile/lightning/tests/str_f.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static float data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .fpr=JIT_F0 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_str_f(j, JIT_R0, JIT_F0); - jit_ret(j); - - void (*f)(void*, float) = jit_end(j, NULL); - - ASSERT(data[0] == -1.0f); - ASSERT(data[1] == 0.0f); - ASSERT(data[2] == 0.5f); - f(&data[1], 42.5f); - ASSERT(data[0] == -1.0f); - ASSERT(data[1] == 42.5f); - ASSERT(data[2] == 0.5f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/str_i.c b/libguile/lightning/tests/str_i.c deleted file mode 100644 index 7dd6d8c78..000000000 --- a/libguile/lightning/tests/str_i.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static uint32_t data[] = { 0x12121212, 0x00000000, 0x34343434 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INT32 }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_str_i(j, JIT_R0, JIT_R1); - jit_ret(j); - - void (*f)(void*, int32_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x12121212); - ASSERT(data[1] == 0x00); - ASSERT(data[2] == 0x34343434); - f(&data[1], -1); - ASSERT(data[0] == 0x12121212); - ASSERT(data[1] == 0xffffffff); - ASSERT(data[2] == 0x34343434); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/str_l.c b/libguile/lightning/tests/str_l.c deleted file mode 100644 index 8a1b905ea..000000000 --- a/libguile/lightning/tests/str_l.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static uint64_t data[] = { 0x1212121212121212, 0, 0x3434343434343434 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INT64 }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_str_l(j, JIT_R0, JIT_R1); - jit_ret(j); - - void (*f)(void*, int64_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x1212121212121212); - ASSERT(data[1] == 0x00); - ASSERT(data[2] == 0x3434343434343434); - f(&data[1], -1); - ASSERT(data[0] == 0x1212121212121212); - ASSERT(data[1] == 0xffffffffffffffff); - ASSERT(data[2] == 0x3434343434343434); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/str_s.c b/libguile/lightning/tests/str_s.c deleted file mode 100644 index 97932ad31..000000000 --- a/libguile/lightning/tests/str_s.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static uint16_t data[] = { 0x1212, 0x0000, 0x3434 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INT16 }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_str_s(j, JIT_R0, JIT_R1); - jit_ret(j); - - void (*f)(void*, int16_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x1212); - ASSERT(data[1] == 0); - ASSERT(data[2] == 0x3434); - f(&data[1], -1); - ASSERT(data[0] == 0x1212); - ASSERT(data[1] == 0xffff); - ASSERT(data[2] == 0x3434); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/stxi_c.c b/libguile/lightning/tests/stxi_c.c deleted file mode 100644 index 1a877434f..000000000 --- a/libguile/lightning/tests/stxi_c.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static uint8_t data[] = { 0x12, 0x00, 0x34 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = - { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INT8 }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = - { { .gpr=JIT_R2 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_stxi_c(j, (uintptr_t)data, JIT_R2, JIT_R1); - jit_ret(j); - - void (*f)(intmax_t, int8_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x12); - ASSERT(data[1] == 0x00); - ASSERT(data[2] == 0x34); - f(1, -1); - ASSERT(data[0] == 0x12); - ASSERT(data[1] == 0xff); - ASSERT(data[2] == 0x34); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/stxi_d.c b/libguile/lightning/tests/stxi_d.c deleted file mode 100644 index a9de3d23d..000000000 --- a/libguile/lightning/tests/stxi_d.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static double data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = - { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = - { { .gpr=JIT_R2 }, { .fpr=JIT_F0 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_stxi_d(j, (uintptr_t)data, JIT_R2, JIT_F0); - jit_ret(j); - - void (*f)(intmax_t, double) = jit_end(j, NULL); - - ASSERT(data[0] == -1.0); - ASSERT(data[1] == 0.0); - ASSERT(data[2] == 0.5); - f(8, 42.5); - ASSERT(data[0] == -1.0); - ASSERT(data[1] == 42.5); - ASSERT(data[2] == 0.5); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/stxi_f.c b/libguile/lightning/tests/stxi_f.c deleted file mode 100644 index a348249ea..000000000 --- a/libguile/lightning/tests/stxi_f.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static float data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = - { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = - { { .gpr=JIT_R2 }, { .fpr=JIT_F0 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_stxi_f(j, (uintptr_t)data, JIT_R2, JIT_F0); - jit_ret(j); - - void (*f)(intmax_t, float) = jit_end(j, NULL); - - ASSERT(data[0] == -1.0f); - ASSERT(data[1] == 0.0f); - ASSERT(data[2] == 0.5f); - f(4, 42.5f); - ASSERT(data[0] == -1.0f); - ASSERT(data[1] == 42.5f); - ASSERT(data[2] == 0.5f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/stxi_i.c b/libguile/lightning/tests/stxi_i.c deleted file mode 100644 index c39adc2cd..000000000 --- a/libguile/lightning/tests/stxi_i.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static uint32_t data[] = { 0x12121212, 0x00000000, 0x34343434 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = - { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INT32 }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = - { { .gpr=JIT_R2 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_stxi_i(j, (uintptr_t)data, JIT_R2, JIT_R1); - jit_ret(j); - - void (*f)(intmax_t, int32_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x12121212); - ASSERT(data[1] == 0x00); - ASSERT(data[2] == 0x34343434); - f(4, -1); - ASSERT(data[0] == 0x12121212); - ASSERT(data[1] == 0xffffffff); - ASSERT(data[2] == 0x34343434); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/stxi_l.c b/libguile/lightning/tests/stxi_l.c deleted file mode 100644 index b280c4d72..000000000 --- a/libguile/lightning/tests/stxi_l.c +++ /dev/null @@ -1,39 +0,0 @@ -#include "test.h" - -static uint64_t data[] = { 0x1212121212121212, 0, 0x3434343434343434 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = - { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INT64 }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = - { { .gpr=JIT_R2 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_stxi_l(j, (uintptr_t)data, JIT_R2, JIT_R1); - jit_ret(j); - - void (*f)(intmax_t, int64_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x1212121212121212); - ASSERT(data[1] == 0x00); - ASSERT(data[2] == 0x3434343434343434); - f(8, -1); - ASSERT(data[0] == 0x1212121212121212); - ASSERT(data[1] == 0xffffffffffffffff); - ASSERT(data[2] == 0x3434343434343434); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/stxi_s.c b/libguile/lightning/tests/stxi_s.c deleted file mode 100644 index 09af31ea6..000000000 --- a/libguile/lightning/tests/stxi_s.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static uint16_t data[] = { 0x1212, 0x0000, 0x3434 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = - { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INT16 }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = - { { .gpr=JIT_R2 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_stxi_s(j, (uintptr_t)data, JIT_R2, JIT_R1); - jit_ret(j); - - void (*f)(intmax_t, int16_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x1212); - ASSERT(data[1] == 0); - ASSERT(data[2] == 0x3434); - f(2, -1); - ASSERT(data[0] == 0x1212); - ASSERT(data[1] == 0xffff); - ASSERT(data[2] == 0x3434); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/stxr_c.c b/libguile/lightning/tests/stxr_c.c deleted file mode 100644 index 14e40c787..000000000 --- a/libguile/lightning/tests/stxr_c.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static uint8_t data[] = { 0x12, 0x00, 0x34 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = - { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INT8 }; - jit_arg_t args[3]; - const jit_anyreg_t regs[] = - { { .gpr=JIT_R0 }, { .gpr=JIT_R2 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 3, abi, args); - jit_load_args(j, 3, abi, args, regs); - - jit_stxr_c(j, JIT_R0, JIT_R2, JIT_R1); - jit_ret(j); - - void (*f)(void*, intmax_t, int8_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x12); - ASSERT(data[1] == 0x00); - ASSERT(data[2] == 0x34); - f(data, 1, -1); - ASSERT(data[0] == 0x12); - ASSERT(data[1] == 0xff); - ASSERT(data[2] == 0x34); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/stxr_d.c b/libguile/lightning/tests/stxr_d.c deleted file mode 100644 index 8f1d957d7..000000000 --- a/libguile/lightning/tests/stxr_d.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static double data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = - { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[3]; - const jit_anyreg_t regs[] = - { { .gpr=JIT_R0 }, { .gpr=JIT_R2 }, { .fpr=JIT_F0 } }; - - jit_receive(j, 3, abi, args); - jit_load_args(j, 3, abi, args, regs); - - jit_stxr_d(j, JIT_R0, JIT_R2, JIT_F0); - jit_ret(j); - - void (*f)(void*, intmax_t, double) = jit_end(j, NULL); - - ASSERT(data[0] == -1.0); - ASSERT(data[1] == 0.0); - ASSERT(data[2] == 0.5); - f(data, 8, 42.5); - ASSERT(data[0] == -1.0); - ASSERT(data[1] == 42.5); - ASSERT(data[2] == 0.5); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/stxr_f.c b/libguile/lightning/tests/stxr_f.c deleted file mode 100644 index 7de57715c..000000000 --- a/libguile/lightning/tests/stxr_f.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static float data[] = { -1.0, 0.0, 0.5 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = - { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[3]; - const jit_anyreg_t regs[] = - { { .gpr=JIT_R0 }, { .gpr=JIT_R2 }, { .fpr=JIT_F0 } }; - - jit_receive(j, 3, abi, args); - jit_load_args(j, 3, abi, args, regs); - - jit_stxr_f(j, JIT_R0, JIT_R2, JIT_F0); - jit_ret(j); - - void (*f)(void*, intmax_t, float) = jit_end(j, NULL); - - ASSERT(data[0] == -1.0f); - ASSERT(data[1] == 0.0f); - ASSERT(data[2] == 0.5f); - f(data, 4, 42.5f); - ASSERT(data[0] == -1.0f); - ASSERT(data[1] == 42.5f); - ASSERT(data[2] == 0.5f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/stxr_i.c b/libguile/lightning/tests/stxr_i.c deleted file mode 100644 index b613ec00a..000000000 --- a/libguile/lightning/tests/stxr_i.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static uint32_t data[] = { 0x12121212, 0x00000000, 0x34343434 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = - { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INT32 }; - jit_arg_t args[3]; - const jit_anyreg_t regs[] = - { { .gpr=JIT_R0 }, { .gpr=JIT_R2 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 3, abi, args); - jit_load_args(j, 3, abi, args, regs); - - jit_stxr_i(j, JIT_R0, JIT_R2, JIT_R1); - jit_ret(j); - - void (*f)(void*, intmax_t, int32_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x12121212); - ASSERT(data[1] == 0x00); - ASSERT(data[2] == 0x34343434); - f(data, 4, -1); - ASSERT(data[0] == 0x12121212); - ASSERT(data[1] == 0xffffffff); - ASSERT(data[2] == 0x34343434); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/stxr_l.c b/libguile/lightning/tests/stxr_l.c deleted file mode 100644 index 0fd239cc7..000000000 --- a/libguile/lightning/tests/stxr_l.c +++ /dev/null @@ -1,39 +0,0 @@ -#include "test.h" - -static uint64_t data[] = { 0x1212121212121212, 0, 0x3434343434343434 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = - { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INT64 }; - jit_arg_t args[3]; - const jit_anyreg_t regs[] = - { { .gpr=JIT_R0 }, { .gpr=JIT_R2 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 3, abi, args); - jit_load_args(j, 3, abi, args, regs); - - jit_stxr_l(j, JIT_R0, JIT_R2, JIT_R1); - jit_ret(j); - - void (*f)(void*, intmax_t, int64_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x1212121212121212); - ASSERT(data[1] == 0x00); - ASSERT(data[2] == 0x3434343434343434); - f(data, 8, -1); - ASSERT(data[0] == 0x1212121212121212); - ASSERT(data[1] == 0xffffffffffffffff); - ASSERT(data[2] == 0x3434343434343434); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/stxr_s.c b/libguile/lightning/tests/stxr_s.c deleted file mode 100644 index 926da5694..000000000 --- a/libguile/lightning/tests/stxr_s.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "test.h" - -static uint16_t data[] = { 0x1212, 0x0000, 0x3434 }; - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = - { JIT_ARG_ABI_POINTER, JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INT16 }; - jit_arg_t args[3]; - const jit_anyreg_t regs[] = - { { .gpr=JIT_R0 }, { .gpr=JIT_R2 }, { .gpr=JIT_R1 } }; - - jit_receive(j, 3, abi, args); - jit_load_args(j, 3, abi, args, regs); - - jit_stxr_s(j, JIT_R0, JIT_R2, JIT_R1); - jit_ret(j); - - void (*f)(void*, intmax_t, int16_t) = jit_end(j, NULL); - - ASSERT(data[0] == 0x1212); - ASSERT(data[1] == 0); - ASSERT(data[2] == 0x3434); - f(data, 2, -1); - ASSERT(data[0] == 0x1212); - ASSERT(data[1] == 0xffff); - ASSERT(data[2] == 0x3434); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/subr.c b/libguile/lightning/tests/subr.c deleted file mode 100644 index a375dff93..000000000 --- a/libguile/lightning/tests/subr.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_subr(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - int (*f)(int, int) = ret; - ASSERT(f(42, 69) == -27); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/subr_d.c b/libguile/lightning/tests/subr_d.c deleted file mode 100644 index 94c5ea477..000000000 --- a/libguile/lightning/tests/subr_d.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE, JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_subr_d(j, JIT_F0, JIT_F0, JIT_F1); - jit_retr_d(j, JIT_F0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - double (*f)(double, double) = ret; - ASSERT(f(42., 69.) == -27.); - ASSERT(f(42., 69.5) == -27.5); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/subr_f.c b/libguile/lightning/tests/subr_f.c deleted file mode 100644 index fd6b37777..000000000 --- a/libguile/lightning/tests/subr_f.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT, JIT_ARG_ABI_FLOAT }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 }, { .fpr=JIT_F1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_subr_f(j, JIT_F0, JIT_F0, JIT_F1); - jit_retr_f(j, JIT_F0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - float (*f)(float, float) = ret; - ASSERT(f(42.f, 69.f) == -27.f); - ASSERT(f(42.0f, 69.5f) == -27.5f); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/subx.c b/libguile/lightning/tests/subx.c deleted file mode 100644 index f28739965..000000000 --- a/libguile/lightning/tests/subx.c +++ /dev/null @@ -1,65 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - jit_movi(j, JIT_R2, 0); - jit_subcr(j, JIT_R0, JIT_R0, JIT_R1); - jit_subxi(j, JIT_R2, JIT_R2, 0); - jit_retr(j, JIT_R2); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0, 0) == 0); - -#if __WORDSIZE == 32 - /* carry */ - ASSERT(f(0x7fffffff, 0xffffffff) == 0xffffffff); - /* overflow */ - ASSERT(f(0x80000000, 1) == 0); - /* carry */ - ASSERT(f(0x7fffffff, 0x80000000) == 0xffffffff); - /* overflow */ - ASSERT(f(0x80000000, 0x7fffffff) == 0); - /* carry+overflow */ - ASSERT(f(1, 0x80000000) == 0xffffffff); -#else - /* carry */ - ASSERT(f(0x7fffffff, 0xffffffff) == -1); - /* nothing */ - ASSERT(f(0x80000000, 1) == 0); - /* carry */ - ASSERT(f(0x7fffffff, 0x80000000) == -1); - /* nothing */ - ASSERT(f(0x80000000, 0x7fffffff) == 0); - /* carry */ - ASSERT(f(1, 0x80000000) == -1); - /* carry */ - ASSERT(f(0x7fffffffffffffff, 0xffffffffffffffff) == -1); - /* overflow */ - ASSERT(f(0x8000000000000000, 1) == 0); - /* carry */ - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == -1); - /* overflow */ - ASSERT(f(0x8000000000000000, 0x7fffffffffffffff) == 0); - /* carry+overflow */ - ASSERT(f(1, 0x8000000000000000) == -1); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/test.h b/libguile/lightning/tests/test.h deleted file mode 100644 index d2d7ec72d..000000000 --- a/libguile/lightning/tests/test.h +++ /dev/null @@ -1,42 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <sys/mman.h> - -#include <lightening.h> - -#define ASSERT(x) \ - do { \ - if (!(x)) { \ - fprintf(stderr, "%s:%d: assertion failed: " #x "\n", \ - __FILE__, __LINE__); \ - abort(); \ - } \ - } while (0) - -static inline int -main_helper (int argc, char *argv[], - void (*run_test)(jit_state_t*, uint8_t*, size_t)) -{ - ASSERT(init_jit()); - jit_state_t *j = jit_new_state(); - ASSERT(j); - - const size_t arena_size = 4096; - char *arena_base = mmap (NULL, arena_size, - PROT_EXEC | PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); - - if (arena_base == MAP_FAILED) - { - perror ("allocating JIT code buffer failed"); - return 1; - } - - run_test(j, (uint8_t*)arena_base, arena_size); - - jit_destroy_state(j); - - munmap(arena_base, arena_size); - - return 0; -} diff --git a/libguile/lightning/tests/truncr_d_i.c b/libguile/lightning/tests/truncr_d_i.c deleted file mode 100644 index c703ae8ba..000000000 --- a/libguile/lightning/tests/truncr_d_i.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_truncr_d_i(j, JIT_R0, JIT_F0); - jit_retr(j, JIT_R0); - - int (*f)(double) = jit_end(j, NULL); - - ASSERT(f(0.0) == 0); - ASSERT(f(-0.0) == 0); - ASSERT(f(0.5) == 0); - ASSERT(f(-0.5) == 0); - ASSERT(f(1.5) == 1); - ASSERT(f(-1.5) == -1); - ASSERT(f(2.5) == 2); - ASSERT(f(-2.5) == -2); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/truncr_d_l.c b/libguile/lightning/tests/truncr_d_l.c deleted file mode 100644 index 752a76fa0..000000000 --- a/libguile/lightning/tests/truncr_d_l.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_DOUBLE }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_truncr_d_l(j, JIT_R0, JIT_F0); - jit_retr(j, JIT_R0); - - int64_t (*f)(double) = jit_end(j, NULL); - - ASSERT(f(0.0) == 0); - ASSERT(f(-0.0) == 0); - ASSERT(f(0.5) == 0); - ASSERT(f(-0.5) == 0); - ASSERT(f(1.5) == 1); - ASSERT(f(-1.5) == -1); - ASSERT(f(2.5) == 2); - ASSERT(f(-2.5) == -2); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/truncr_f_i.c b/libguile/lightning/tests/truncr_f_i.c deleted file mode 100644 index 32fd71fdf..000000000 --- a/libguile/lightning/tests/truncr_f_i.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_truncr_f_i(j, JIT_R0, JIT_F0); - jit_retr(j, JIT_R0); - - int (*f)(float) = jit_end(j, NULL); - - ASSERT(f(0.0) == 0); - ASSERT(f(-0.0) == 0); - ASSERT(f(0.5) == 0); - ASSERT(f(-0.5) == 0); - ASSERT(f(1.5) == 1); - ASSERT(f(-1.5) == -1); - ASSERT(f(2.5) == 2); - ASSERT(f(-2.5) == -2); -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/truncr_f_l.c b/libguile/lightning/tests/truncr_f_l.c deleted file mode 100644 index af3a1168e..000000000 --- a/libguile/lightning/tests/truncr_f_l.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ -#if __WORDSIZE > 32 - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_FLOAT }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .fpr=JIT_F0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_truncr_f_l(j, JIT_R0, JIT_F0); - jit_retr(j, JIT_R0); - - int64_t (*f)(float) = jit_end(j, NULL); - - ASSERT(f(0.0) == 0); - ASSERT(f(-0.0) == 0); - ASSERT(f(0.5) == 0); - ASSERT(f(-0.5) == 0); - ASSERT(f(1.5) == 1); - ASSERT(f(-1.5) == -1); - ASSERT(f(2.5) == 2); - ASSERT(f(-2.5) == -2); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/xori.c b/libguile/lightning/tests/xori.c deleted file mode 100644 index 59859fc29..000000000 --- a/libguile/lightning/tests/xori.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX }; - jit_arg_t args[1]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 } }; - - jit_receive(j, 1, abi, args); - jit_load_args(j, 1, abi, args, regs); - - jit_xori(j, JIT_R0, JIT_R0, 1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t) = ret; - - ASSERT(f(0x7fffffff) == 0x7ffffffe); - ASSERT(f(0x80000000) == 0x80000001); -#if __WORDSIZE == 64 - ASSERT(f(0x7fffffffffffffff) == 0x7ffffffffffffffe); - ASSERT(f(0x8000000000000000) == 0x8000000000000001); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} diff --git a/libguile/lightning/tests/xorr.c b/libguile/lightning/tests/xorr.c deleted file mode 100644 index 1be654b09..000000000 --- a/libguile/lightning/tests/xorr.c +++ /dev/null @@ -1,51 +0,0 @@ -#include "test.h" - -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) -{ - jit_begin(j, arena_base, arena_size); - - const jit_arg_abi_t abi[] = { JIT_ARG_ABI_INTMAX, JIT_ARG_ABI_INTMAX }; - jit_arg_t args[2]; - const jit_anyreg_t regs[] = { { .gpr=JIT_R0 }, { .gpr=JIT_R1 }}; - - jit_receive(j, 2, abi, args); - jit_load_args(j, 2, abi, args, regs); - - jit_xorr(j, JIT_R0, JIT_R0, JIT_R1); - jit_retr(j, JIT_R0); - - size_t size = 0; - void* ret = jit_end(j, &size); - - intmax_t (*f)(intmax_t, intmax_t) = ret; - - ASSERT(f(0x7fffffff, 1) == 0x7ffffffe); - ASSERT(f(1, 0x7fffffff) == 0x7ffffffe); - ASSERT(f(0x80000000, 1) == 0x80000001); - ASSERT(f(1, 0x80000000) == 0x80000001); - ASSERT(f(0x7fffffff, 0x80000000) == 0xffffffff); - ASSERT(f(0x80000000, 0x7fffffff) == 0xffffffff); - ASSERT(f(0x7fffffff, 0xffffffff) == 0x80000000); - ASSERT(f(0xffffffff, 0x7fffffff) == 0x80000000); - ASSERT(f(0xffffffff, 0xffffffff) == 0); - ASSERT(f(0x7fffffff, 0) == 0x7fffffff); - ASSERT(f(0, 0x7fffffff) == 0x7fffffff); -#if __WORDSIZE == 64 - ASSERT(f(0x7fffffffffffffff, 1) == 0x7ffffffffffffffe); - ASSERT(f(1, 0x7fffffffffffffff) == 0x7ffffffffffffffe); - ASSERT(f(0x8000000000000000, 1) == 0x8000000000000001); - ASSERT(f(1, 0x8000000000000000) == 0x8000000000000001); - ASSERT(f(0x7fffffffffffffff, 0x8000000000000000) == 0xffffffffffffffff); - ASSERT(f(0x8000000000000000, 0x7fffffffffffffff) == 0xffffffffffffffff); - ASSERT(f(0x7fffffffffffffff, 0xffffffffffffffff) == 0x8000000000000000); - ASSERT(f(0xffffffffffffffff, 0x7fffffffffffffff) == 0x8000000000000000); - ASSERT(f(0xffffffffffffffff, 0xffffffffffffffff) == 0); -#endif -} - -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); -} |