summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@igalia.com>2019-04-27 22:54:38 +0200
committerAndy Wingo <wingo@igalia.com>2019-04-27 22:54:38 +0200
commitd11864f09883b1624a17b3f444378c38515b231f (patch)
treeb62d5a982200720875263ae839f62c10e123a42b
parent81ba8830a21c0e381f1f1e51e7f244dea676a169 (diff)
downloadguile-d11864f09883b1624a17b3f444378c38515b231f.tar.gz
Add {enter,leave}_jit_abi calls in tests
This saves and restores RBP on x86-32.
-rw-r--r--tests/absr_d.c2
-rw-r--r--tests/absr_f.c2
-rw-r--r--tests/addi.c2
-rw-r--r--tests/addr.c2
-rw-r--r--tests/addr_d.c2
-rw-r--r--tests/addr_f.c2
-rw-r--r--tests/addx.c2
-rw-r--r--tests/andi.c2
-rw-r--r--tests/andr.c2
-rw-r--r--tests/beqi.c3
-rw-r--r--tests/beqr.c3
-rw-r--r--tests/beqr_d.c3
-rw-r--r--tests/beqr_f.c3
-rw-r--r--tests/bgei.c3
-rw-r--r--tests/bgei_u.c3
-rw-r--r--tests/bger.c3
-rw-r--r--tests/bger_d.c3
-rw-r--r--tests/bger_f.c3
-rw-r--r--tests/bger_u.c3
-rw-r--r--tests/bgti.c3
-rw-r--r--tests/bgti_u.c3
-rw-r--r--tests/bgtr.c3
-rw-r--r--tests/bgtr_d.c3
-rw-r--r--tests/bgtr_f.c3
-rw-r--r--tests/bgtr_u.c3
-rw-r--r--tests/blei.c3
-rw-r--r--tests/blei_u.c3
-rw-r--r--tests/bler.c3
-rw-r--r--tests/bler_d.c3
-rw-r--r--tests/bler_f.c3
-rw-r--r--tests/bler_u.c3
-rw-r--r--tests/bltgtr_d.c3
-rw-r--r--tests/bltgtr_f.c3
-rw-r--r--tests/blti.c3
-rw-r--r--tests/blti_u.c3
-rw-r--r--tests/bltr.c3
-rw-r--r--tests/bltr_d.c3
-rw-r--r--tests/bltr_f.c3
-rw-r--r--tests/bltr_u.c3
-rw-r--r--tests/bmci.c3
-rw-r--r--tests/bmcr.c3
-rw-r--r--tests/bmsi.c3
-rw-r--r--tests/bmsr.c3
-rw-r--r--tests/bnei.c3
-rw-r--r--tests/bner.c3
-rw-r--r--tests/bner_d.c3
-rw-r--r--tests/bner_f.c3
-rw-r--r--tests/boaddi.c3
-rw-r--r--tests/boaddi_u.c3
-rw-r--r--tests/boaddr.c3
-rw-r--r--tests/boaddr_u.c3
-rw-r--r--tests/bordr_d.c3
-rw-r--r--tests/bordr_f.c3
-rw-r--r--tests/bosubi.c3
-rw-r--r--tests/bosubi_u.c3
-rw-r--r--tests/bosubr.c3
-rw-r--r--tests/bosubr_u.c3
-rw-r--r--tests/bswapr_ui.c2
-rw-r--r--tests/bswapr_ul.c2
-rw-r--r--tests/bswapr_us.c2
-rw-r--r--tests/buneqr_d.c3
-rw-r--r--tests/buneqr_f.c3
-rw-r--r--tests/bunger_d.c3
-rw-r--r--tests/bunger_f.c3
-rw-r--r--tests/bungtr_d.c3
-rw-r--r--tests/bungtr_f.c3
-rw-r--r--tests/bunler_d.c3
-rw-r--r--tests/bunler_f.c3
-rw-r--r--tests/bunltr_d.c3
-rw-r--r--tests/bunltr_f.c3
-rw-r--r--tests/bunordr_d.c3
-rw-r--r--tests/bunordr_f.c3
-rw-r--r--tests/bxaddi.c2
-rw-r--r--tests/bxaddi_u.c2
-rw-r--r--tests/bxaddr.c2
-rw-r--r--tests/bxaddr_u.c2
-rw-r--r--tests/bxsubi.c2
-rw-r--r--tests/bxsubi_u.c2
-rw-r--r--tests/bxsubr.c2
-rw-r--r--tests/bxsubr_u.c2
-rw-r--r--tests/comr.c2
-rw-r--r--tests/divr.c2
-rw-r--r--tests/divr_d.c2
-rw-r--r--tests/divr_f.c2
-rw-r--r--tests/divr_u.c2
-rw-r--r--tests/extr_c.c2
-rw-r--r--tests/extr_d.c2
-rw-r--r--tests/extr_d_f.c2
-rw-r--r--tests/extr_f.c2
-rw-r--r--tests/extr_f_d.c2
-rw-r--r--tests/extr_i.c2
-rw-r--r--tests/extr_s.c2
-rw-r--r--tests/extr_uc.c2
-rw-r--r--tests/extr_ui.c2
-rw-r--r--tests/extr_us.c2
-rw-r--r--tests/ldi_c.c2
-rw-r--r--tests/ldi_d.c2
-rw-r--r--tests/ldi_f.c2
-rw-r--r--tests/ldi_i.c2
-rw-r--r--tests/ldi_l.c2
-rw-r--r--tests/ldi_s.c2
-rw-r--r--tests/ldi_uc.c2
-rw-r--r--tests/ldi_ui.c2
-rw-r--r--tests/ldi_us.c2
-rw-r--r--tests/ldr_c.c2
-rw-r--r--tests/ldr_d.c2
-rw-r--r--tests/ldr_f.c2
-rw-r--r--tests/ldr_i.c2
-rw-r--r--tests/ldr_l.c2
-rw-r--r--tests/ldr_s.c2
-rw-r--r--tests/ldr_uc.c2
-rw-r--r--tests/ldr_ui.c2
-rw-r--r--tests/ldr_us.c2
-rw-r--r--tests/ldxi_c.c2
-rw-r--r--tests/ldxi_d.c2
-rw-r--r--tests/ldxi_f.c2
-rw-r--r--tests/ldxi_i.c2
-rw-r--r--tests/ldxi_l.c2
-rw-r--r--tests/ldxi_s.c2
-rw-r--r--tests/ldxi_uc.c2
-rw-r--r--tests/ldxi_ui.c2
-rw-r--r--tests/ldxi_us.c2
-rw-r--r--tests/ldxr_c.c2
-rw-r--r--tests/ldxr_d.c2
-rw-r--r--tests/ldxr_f.c2
-rw-r--r--tests/ldxr_i.c2
-rw-r--r--tests/ldxr_l.c2
-rw-r--r--tests/ldxr_s.c2
-rw-r--r--tests/ldxr_uc.c2
-rw-r--r--tests/ldxr_ui.c2
-rw-r--r--tests/ldxr_us.c2
-rw-r--r--tests/lshi.c2
-rw-r--r--tests/lshr.c2
-rw-r--r--tests/mov_addr.c2
-rw-r--r--tests/movi_d.c2
-rw-r--r--tests/movi_f.c2
-rw-r--r--tests/mulr.c2
-rw-r--r--tests/mulr_d.c2
-rw-r--r--tests/mulr_f.c2
-rw-r--r--tests/negr.c2
-rw-r--r--tests/negr_d.c2
-rw-r--r--tests/negr_f.c2
-rw-r--r--tests/nop.c2
-rw-r--r--tests/ori.c2
-rw-r--r--tests/orr.c2
-rw-r--r--tests/pushpop.c12
-rw-r--r--tests/remr.c2
-rw-r--r--tests/remr_u.c2
-rw-r--r--tests/rshi.c2
-rw-r--r--tests/rshi_u.c2
-rw-r--r--tests/rshr.c2
-rw-r--r--tests/rshr_u.c2
-rw-r--r--tests/sqrtr_d.c2
-rw-r--r--tests/sqrtr_f.c2
-rw-r--r--tests/sti_c.c2
-rw-r--r--tests/sti_d.c2
-rw-r--r--tests/sti_f.c2
-rw-r--r--tests/sti_i.c2
-rw-r--r--tests/sti_l.c2
-rw-r--r--tests/sti_s.c2
-rw-r--r--tests/str_c.c2
-rw-r--r--tests/str_d.c2
-rw-r--r--tests/str_f.c2
-rw-r--r--tests/str_i.c2
-rw-r--r--tests/str_l.c2
-rw-r--r--tests/str_s.c2
-rw-r--r--tests/stxi_c.c2
-rw-r--r--tests/stxi_d.c2
-rw-r--r--tests/stxi_f.c2
-rw-r--r--tests/stxi_i.c2
-rw-r--r--tests/stxi_l.c2
-rw-r--r--tests/stxi_s.c2
-rw-r--r--tests/stxr_c.c2
-rw-r--r--tests/stxr_d.c2
-rw-r--r--tests/stxr_f.c2
-rw-r--r--tests/stxr_i.c2
-rw-r--r--tests/stxr_l.c2
-rw-r--r--tests/stxr_s.c2
-rw-r--r--tests/subr.c2
-rw-r--r--tests/subr_d.c2
-rw-r--r--tests/subr_f.c2
-rw-r--r--tests/subx.c2
-rw-r--r--tests/truncr_d_i.c2
-rw-r--r--tests/truncr_d_l.c2
-rw-r--r--tests/truncr_f_i.c2
-rw-r--r--tests/truncr_f_l.c2
-rw-r--r--tests/xori.c2
-rw-r--r--tests/xorr.c2
188 files changed, 438 insertions, 8 deletions
diff --git a/tests/absr_d.c b/tests/absr_d.c
index 93b10b673..00b8fa460 100644
--- a/tests/absr_d.c
+++ b/tests/absr_d.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0));
jit_absr_d(j, JIT_F0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
double (*f)(double) = jit_end(j, NULL);
diff --git a/tests/absr_f.c b/tests/absr_f.c
index 64463bf89..e019b5ff3 100644
--- a/tests/absr_f.c
+++ b/tests/absr_f.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0));
jit_absr_f(j, JIT_F0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
float (*f)(float) = jit_end(j, NULL);
diff --git a/tests/addi.c b/tests/addi.c
index 85d4d8e9b..756d07061 100644
--- a/tests/addi.c
+++ b/tests/addi.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_addi(j, JIT_R0, JIT_R0, 69);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/addr.c b/tests/addr.c
index a54f75661..6ee76e291 100644
--- a/tests/addr.c
+++ b/tests/addr.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_addr(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/addr_d.c b/tests/addr_d.c
index 8c7be6298..11216202e 100644
--- a/tests/addr_d.c
+++ b/tests/addr_d.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_addr_d(j, JIT_F0, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
size_t size = 0;
diff --git a/tests/addr_f.c b/tests/addr_f.c
index 1ed1f36b4..4317dfe3a 100644
--- a/tests/addr_f.c
+++ b/tests/addr_f.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_addr_f(j, JIT_F0, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
size_t size = 0;
diff --git a/tests/addx.c b/tests/addx.c
index 875e09f42..417cd1a26 100644
--- a/tests/addx.c
+++ b/tests/addx.c
@@ -4,12 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_movi(j, JIT_R2, 0);
jit_addcr(j, JIT_R0, JIT_R0, JIT_R1);
jit_addxi(j, JIT_R2, JIT_R2, 0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R2);
size_t size = 0;
diff --git a/tests/andi.c b/tests/andi.c
index 2f84d767e..c6f39d7aa 100644
--- a/tests/andi.c
+++ b/tests/andi.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_andi(j, JIT_R0, JIT_R0, 1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/andr.c b/tests/andr.c
index 2e09527b8..1114ef98f 100644
--- a/tests/andr.c
+++ b/tests/andr.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_andr(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/beqi.c b/tests/beqi.c
index 857d927a5..2fb2454c0 100644
--- a/tests/beqi.c
+++ b/tests/beqi.c
@@ -4,11 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_beqi(j, JIT_R0, 0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/beqr.c b/tests/beqr.c
index e8bacd017..d1d80b266 100644
--- a/tests/beqr.c
+++ b/tests/beqr.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_beqr(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/beqr_d.c b/tests/beqr_d.c
index 1b7f88b25..a84b6a76a 100644
--- a/tests/beqr_d.c
+++ b/tests/beqr_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_beqr_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/beqr_f.c b/tests/beqr_f.c
index 85b464f8f..7b5cc2708 100644
--- a/tests/beqr_f.c
+++ b/tests/beqr_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_beqr_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/bgei.c b/tests/bgei.c
index 939e1a02f..b9a830b5d 100644
--- a/tests/bgei.c
+++ b/tests/bgei.c
@@ -4,11 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bgei(j, JIT_R0, 0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bgei_u.c b/tests/bgei_u.c
index b5253e931..894c275e1 100644
--- a/tests/bgei_u.c
+++ b/tests/bgei_u.c
@@ -4,11 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bgei_u(j, JIT_R0, 0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bger.c b/tests/bger.c
index d59e4f456..daab88c39 100644
--- a/tests/bger.c
+++ b/tests/bger.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bger(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bger_d.c b/tests/bger_d.c
index 281803dc6..712b118ea 100644
--- a/tests/bger_d.c
+++ b/tests/bger_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_bger_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/bger_f.c b/tests/bger_f.c
index d9c556c23..b9d547861 100644
--- a/tests/bger_f.c
+++ b/tests/bger_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_bger_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/bger_u.c b/tests/bger_u.c
index 13c6a1dc4..5c07f442d 100644
--- a/tests/bger_u.c
+++ b/tests/bger_u.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bger_u(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bgti.c b/tests/bgti.c
index 36df65930..4bfd36e1f 100644
--- a/tests/bgti.c
+++ b/tests/bgti.c
@@ -4,11 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bgti(j, JIT_R0, 0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bgti_u.c b/tests/bgti_u.c
index c5be4e3f3..b4da14e01 100644
--- a/tests/bgti_u.c
+++ b/tests/bgti_u.c
@@ -4,11 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bgti_u(j, JIT_R0, 0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bgtr.c b/tests/bgtr.c
index 222816a26..dbf5fdd50 100644
--- a/tests/bgtr.c
+++ b/tests/bgtr.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bgtr(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bgtr_d.c b/tests/bgtr_d.c
index f2892ab83..d3c24362a 100644
--- a/tests/bgtr_d.c
+++ b/tests/bgtr_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_bgtr_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/bgtr_f.c b/tests/bgtr_f.c
index 4ac08a344..91cb8c046 100644
--- a/tests/bgtr_f.c
+++ b/tests/bgtr_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_bgtr_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/bgtr_u.c b/tests/bgtr_u.c
index 23ade0931..2ed4d8eda 100644
--- a/tests/bgtr_u.c
+++ b/tests/bgtr_u.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bgtr_u(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/blei.c b/tests/blei.c
index 4303cae13..cb9eacb9c 100644
--- a/tests/blei.c
+++ b/tests/blei.c
@@ -4,11 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_blei(j, JIT_R0, 0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/blei_u.c b/tests/blei_u.c
index 23c02729d..efe0523c5 100644
--- a/tests/blei_u.c
+++ b/tests/blei_u.c
@@ -4,11 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_blei_u(j, JIT_R0, 0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bler.c b/tests/bler.c
index 0d3f160d9..57371fb18 100644
--- a/tests/bler.c
+++ b/tests/bler.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bler(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bler_d.c b/tests/bler_d.c
index 7d5253160..507dac506 100644
--- a/tests/bler_d.c
+++ b/tests/bler_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_bler_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/bler_f.c b/tests/bler_f.c
index 5d57bc11d..191b6492c 100644
--- a/tests/bler_f.c
+++ b/tests/bler_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_bler_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/bler_u.c b/tests/bler_u.c
index a4caf5b31..4269fee10 100644
--- a/tests/bler_u.c
+++ b/tests/bler_u.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bler_u(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bltgtr_d.c b/tests/bltgtr_d.c
index 21fa5467e..3d8835dbd 100644
--- a/tests/bltgtr_d.c
+++ b/tests/bltgtr_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_bltgtr_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/bltgtr_f.c b/tests/bltgtr_f.c
index 872fbb3c3..fbdbc3b30 100644
--- a/tests/bltgtr_f.c
+++ b/tests/bltgtr_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_bltgtr_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/blti.c b/tests/blti.c
index a011f5a6c..fcdeb15b4 100644
--- a/tests/blti.c
+++ b/tests/blti.c
@@ -4,11 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_blti(j, JIT_R0, 0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/blti_u.c b/tests/blti_u.c
index b4afe71f5..e90f1938e 100644
--- a/tests/blti_u.c
+++ b/tests/blti_u.c
@@ -4,11 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_blti_u(j, JIT_R0, 0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bltr.c b/tests/bltr.c
index d9d252007..901f6c4b4 100644
--- a/tests/bltr.c
+++ b/tests/bltr.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bltr(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bltr_d.c b/tests/bltr_d.c
index a1b60a314..2d6260931 100644
--- a/tests/bltr_d.c
+++ b/tests/bltr_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_bltr_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/bltr_f.c b/tests/bltr_f.c
index adbafec37..eebd3da0c 100644
--- a/tests/bltr_f.c
+++ b/tests/bltr_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_bltr_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/bltr_u.c b/tests/bltr_u.c
index 4ec33c26b..9df16fc1d 100644
--- a/tests/bltr_u.c
+++ b/tests/bltr_u.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bltr_u(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bmci.c b/tests/bmci.c
index 55cd4a33a..608d6667b 100644
--- a/tests/bmci.c
+++ b/tests/bmci.c
@@ -4,11 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bmci(j, JIT_R0, 1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bmcr.c b/tests/bmcr.c
index 00dad50d2..df7e04641 100644
--- a/tests/bmcr.c
+++ b/tests/bmcr.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bmcr(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bmsi.c b/tests/bmsi.c
index a51616427..82c2ba7ea 100644
--- a/tests/bmsi.c
+++ b/tests/bmsi.c
@@ -4,11 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bmsi(j, JIT_R0, 1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bmsr.c b/tests/bmsr.c
index 79a9d235f..8caa7e0e7 100644
--- a/tests/bmsr.c
+++ b/tests/bmsr.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bmsr(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bnei.c b/tests/bnei.c
index 3b064820b..73e38a7db 100644
--- a/tests/bnei.c
+++ b/tests/bnei.c
@@ -4,11 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bnei(j, JIT_R0, 0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bner.c b/tests/bner.c
index 2e1321682..e6515865e 100644
--- a/tests/bner.c
+++ b/tests/bner.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bner(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bner_d.c b/tests/bner_d.c
index 3f29d460b..079fda466 100644
--- a/tests/bner_d.c
+++ b/tests/bner_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_bner_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/bner_f.c b/tests/bner_f.c
index e43ddf9e8..011df67b2 100644
--- a/tests/bner_f.c
+++ b/tests/bner_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_bner_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/boaddi.c b/tests/boaddi.c
index 6dcc4ea5e..1e47297c4 100644
--- a/tests/boaddi.c
+++ b/tests/boaddi.c
@@ -6,12 +6,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_boaddi(j, JIT_R0, 1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_patch_here(j, r);
jit_movi(j, JIT_R0, overflowed);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/boaddi_u.c b/tests/boaddi_u.c
index 364c71c96..21c71dfb9 100644
--- a/tests/boaddi_u.c
+++ b/tests/boaddi_u.c
@@ -6,12 +6,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_boaddi_u(j, JIT_R0, 1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_patch_here(j, r);
jit_movi(j, JIT_R0, overflowed);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/boaddr.c b/tests/boaddr.c
index c07417c20..8bab91ef1 100644
--- a/tests/boaddr.c
+++ b/tests/boaddr.c
@@ -6,13 +6,16 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_boaddr(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_patch_here(j, r);
jit_movi(j, JIT_R0, overflowed);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/boaddr_u.c b/tests/boaddr_u.c
index b186a90ce..f4bacde65 100644
--- a/tests/boaddr_u.c
+++ b/tests/boaddr_u.c
@@ -6,13 +6,16 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_boaddr_u(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_patch_here(j, r);
jit_movi(j, JIT_R0, overflowed);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bordr_d.c b/tests/bordr_d.c
index 9a611db0a..9227f2223 100644
--- a/tests/bordr_d.c
+++ b/tests/bordr_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_bordr_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/bordr_f.c b/tests/bordr_f.c
index fcfac6e86..25808e51f 100644
--- a/tests/bordr_f.c
+++ b/tests/bordr_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_bordr_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/bosubi.c b/tests/bosubi.c
index 41e624517..f10d90a75 100644
--- a/tests/bosubi.c
+++ b/tests/bosubi.c
@@ -6,12 +6,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bosubi(j, JIT_R0, 1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_patch_here(j, r);
jit_movi(j, JIT_R0, overflowed);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bosubi_u.c b/tests/bosubi_u.c
index b494a7d92..50af6ad56 100644
--- a/tests/bosubi_u.c
+++ b/tests/bosubi_u.c
@@ -6,12 +6,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bosubi_u(j, JIT_R0, 1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_patch_here(j, r);
jit_movi(j, JIT_R0, overflowed);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bosubr.c b/tests/bosubr.c
index 17da71f83..cf68ad625 100644
--- a/tests/bosubr.c
+++ b/tests/bosubr.c
@@ -6,13 +6,16 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bosubr(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_patch_here(j, r);
jit_movi(j, JIT_R0, overflowed);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bosubr_u.c b/tests/bosubr_u.c
index a3d8ae355..b5e6b39a0 100644
--- a/tests/bosubr_u.c
+++ b/tests/bosubr_u.c
@@ -6,13 +6,16 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bosubr_u(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_patch_here(j, r);
jit_movi(j, JIT_R0, overflowed);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bswapr_ui.c b/tests/bswapr_ui.c
index 653eb2d42..c1eb9fdc0 100644
--- a/tests/bswapr_ui.c
+++ b/tests/bswapr_ui.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_bswapr_ui(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/bswapr_ul.c b/tests/bswapr_ul.c
index 106a94cef..a3a11b31e 100644
--- a/tests/bswapr_ul.c
+++ b/tests/bswapr_ul.c
@@ -5,9 +5,11 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
{
#if __WORDSIZE > 32
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_bswapr_ul(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/bswapr_us.c b/tests/bswapr_us.c
index fd0d439f6..0ff777e9e 100644
--- a/tests/bswapr_us.c
+++ b/tests/bswapr_us.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_bswapr_us(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/buneqr_d.c b/tests/buneqr_d.c
index eead53ef3..1d08e325e 100644
--- a/tests/buneqr_d.c
+++ b/tests/buneqr_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_buneqr_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/buneqr_f.c b/tests/buneqr_f.c
index b64874209..49d9062ee 100644
--- a/tests/buneqr_f.c
+++ b/tests/buneqr_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_buneqr_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/bunger_d.c b/tests/bunger_d.c
index e949c9719..57888af01 100644
--- a/tests/bunger_d.c
+++ b/tests/bunger_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_bunger_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/bunger_f.c b/tests/bunger_f.c
index 4fc598393..f3103dc9a 100644
--- a/tests/bunger_f.c
+++ b/tests/bunger_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_bunger_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/bungtr_d.c b/tests/bungtr_d.c
index f00c1ea3d..649d61f30 100644
--- a/tests/bungtr_d.c
+++ b/tests/bungtr_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_bungtr_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/bungtr_f.c b/tests/bungtr_f.c
index 722779c0f..fea66dc60 100644
--- a/tests/bungtr_f.c
+++ b/tests/bungtr_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_bungtr_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/bunler_d.c b/tests/bunler_d.c
index d3cec1842..e59382c5e 100644
--- a/tests/bunler_d.c
+++ b/tests/bunler_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_bunler_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/bunler_f.c b/tests/bunler_f.c
index fa3b0ef99..fddce6b94 100644
--- a/tests/bunler_f.c
+++ b/tests/bunler_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_bunler_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/bunltr_d.c b/tests/bunltr_d.c
index e6adf6d6c..2ab00510b 100644
--- a/tests/bunltr_d.c
+++ b/tests/bunltr_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_bunltr_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/bunltr_f.c b/tests/bunltr_f.c
index 4d6048eae..ade228b7b 100644
--- a/tests/bunltr_f.c
+++ b/tests/bunltr_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_bunltr_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/bunordr_d.c b/tests/bunordr_d.c
index f9d074b06..6b04f0ee1 100644
--- a/tests/bunordr_d.c
+++ b/tests/bunordr_d.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_reloc_t r = jit_bunordr_d(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(double, double) = jit_end(j, NULL);
diff --git a/tests/bunordr_f.c b/tests/bunordr_f.c
index 5dffc6920..ce4fc7bea 100644
--- a/tests/bunordr_f.c
+++ b/tests/bunordr_f.c
@@ -4,12 +4,15 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_reloc_t r = jit_bunordr_f(j, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 0);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 1);
jit_word_t (*f)(float, float) = jit_end(j, NULL);
diff --git a/tests/bxaddi.c b/tests/bxaddi.c
index 30ea9430b..6e872dace 100644
--- a/tests/bxaddi.c
+++ b/tests/bxaddi.c
@@ -6,11 +6,13 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bxaddi(j, JIT_R0, 1);
jit_movi(j, JIT_R0, overflowed);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bxaddi_u.c b/tests/bxaddi_u.c
index 702f135a3..e71aeb79d 100644
--- a/tests/bxaddi_u.c
+++ b/tests/bxaddi_u.c
@@ -6,11 +6,13 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bxaddi_u(j, JIT_R0, 1);
jit_movi(j, JIT_R0, overflowed);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bxaddr.c b/tests/bxaddr.c
index 84b3639f0..c1f6f2393 100644
--- a/tests/bxaddr.c
+++ b/tests/bxaddr.c
@@ -6,12 +6,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bxaddr(j, JIT_R0, JIT_R1);
jit_movi(j, JIT_R0, overflowed);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bxaddr_u.c b/tests/bxaddr_u.c
index b20ddd029..d674f8286 100644
--- a/tests/bxaddr_u.c
+++ b/tests/bxaddr_u.c
@@ -6,12 +6,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bxaddr_u(j, JIT_R0, JIT_R1);
jit_movi(j, JIT_R0, overflowed);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bxsubi.c b/tests/bxsubi.c
index 23174d7a1..1b642c711 100644
--- a/tests/bxsubi.c
+++ b/tests/bxsubi.c
@@ -6,11 +6,13 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bxsubi(j, JIT_R0, 1);
jit_movi(j, JIT_R0, overflowed);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bxsubi_u.c b/tests/bxsubi_u.c
index 9c50858ef..1345bd2bf 100644
--- a/tests/bxsubi_u.c
+++ b/tests/bxsubi_u.c
@@ -6,11 +6,13 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_reloc_t r = jit_bxsubi_u(j, JIT_R0, 1);
jit_movi(j, JIT_R0, overflowed);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bxsubr.c b/tests/bxsubr.c
index 5ac2a7007..d40d1821d 100644
--- a/tests/bxsubr.c
+++ b/tests/bxsubr.c
@@ -6,12 +6,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bxsubr(j, JIT_R0, JIT_R1);
jit_movi(j, JIT_R0, overflowed);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/bxsubr_u.c b/tests/bxsubr_u.c
index 6ac20dbbf..54a8d2836 100644
--- a/tests/bxsubr_u.c
+++ b/tests/bxsubr_u.c
@@ -6,12 +6,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_reloc_t r = jit_bxsubr_u(j, JIT_R0, JIT_R1);
jit_movi(j, JIT_R0, overflowed);
jit_patch_here(j, r);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t, jit_word_t) = jit_end(j, NULL);
diff --git a/tests/comr.c b/tests/comr.c
index bbdc287a1..c2e7d1883 100644
--- a/tests/comr.c
+++ b/tests/comr.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_comr(j, JIT_R0, JIT_R0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/divr.c b/tests/divr.c
index b83382c4f..399d70de1 100644
--- a/tests/divr.c
+++ b/tests/divr.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_divr(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/divr_d.c b/tests/divr_d.c
index d678c7370..9d21cb591 100644
--- a/tests/divr_d.c
+++ b/tests/divr_d.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_divr_d(j, JIT_F0, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
size_t size = 0;
diff --git a/tests/divr_f.c b/tests/divr_f.c
index 0dcf8a618..de519dc75 100644
--- a/tests/divr_f.c
+++ b/tests/divr_f.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_divr_f(j, JIT_F0, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
size_t size = 0;
diff --git a/tests/divr_u.c b/tests/divr_u.c
index 37ea02260..b8305f781 100644
--- a/tests/divr_u.c
+++ b/tests/divr_u.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_divr_u(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/extr_c.c b/tests/extr_c.c
index 06ea12a08..043068d3f 100644
--- a/tests/extr_c.c
+++ b/tests/extr_c.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_extr_c(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/extr_d.c b/tests/extr_d.c
index 14c327258..af0fe9145 100644
--- a/tests/extr_d.c
+++ b/tests/extr_d.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_extr_d(j, JIT_F0, JIT_R0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
double (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/extr_d_f.c b/tests/extr_d_f.c
index eeeb860c0..049eb5fb5 100644
--- a/tests/extr_d_f.c
+++ b/tests/extr_d_f.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0));
jit_extr_d_f(j, JIT_F0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
float (*f)(double) = jit_end(j, NULL);
diff --git a/tests/extr_f.c b/tests/extr_f.c
index 75d74a25d..b57830cae 100644
--- a/tests/extr_f.c
+++ b/tests/extr_f.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_extr_f(j, JIT_F0, JIT_R0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
float (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/extr_f_d.c b/tests/extr_f_d.c
index 8f14ea4ff..5fa500772 100644
--- a/tests/extr_f_d.c
+++ b/tests/extr_f_d.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0));
jit_extr_f_d(j, JIT_F0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
double (*f)(float) = jit_end(j, NULL);
diff --git a/tests/extr_i.c b/tests/extr_i.c
index 6f7a9bb3f..d26a576b5 100644
--- a/tests/extr_i.c
+++ b/tests/extr_i.c
@@ -5,9 +5,11 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
{
#if __WORDSIZE > 32
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_extr_i(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/extr_s.c b/tests/extr_s.c
index a111937e6..5b39af392 100644
--- a/tests/extr_s.c
+++ b/tests/extr_s.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_extr_s(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/extr_uc.c b/tests/extr_uc.c
index 4ebae5413..a42e603a9 100644
--- a/tests/extr_uc.c
+++ b/tests/extr_uc.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_extr_uc(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/extr_ui.c b/tests/extr_ui.c
index 70d7f3bb0..37964da16 100644
--- a/tests/extr_ui.c
+++ b/tests/extr_ui.c
@@ -5,9 +5,11 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
{
#if __WORDSIZE > 32
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_extr_ui(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/extr_us.c b/tests/extr_us.c
index 7ea001fc2..38a7c390a 100644
--- a/tests/extr_us.c
+++ b/tests/extr_us.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_extr_us(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldi_c.c b/tests/ldi_c.c
index a825ab85c..9d5de8226 100644
--- a/tests/ldi_c.c
+++ b/tests/ldi_c.c
@@ -6,8 +6,10 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_ldi_c(j, JIT_R0, &data[0]);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void) = jit_end(j, NULL);
diff --git a/tests/ldi_d.c b/tests/ldi_d.c
index 562e35d99..b72cdda61 100644
--- a/tests/ldi_d.c
+++ b/tests/ldi_d.c
@@ -6,8 +6,10 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_ldi_d(j, JIT_F0, &data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
double (*f)(void) = jit_end(j, NULL);
diff --git a/tests/ldi_f.c b/tests/ldi_f.c
index ff9abd006..13e5fd427 100644
--- a/tests/ldi_f.c
+++ b/tests/ldi_f.c
@@ -6,8 +6,10 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_ldi_f(j, JIT_F0, &data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
float (*f)(void) = jit_end(j, NULL);
diff --git a/tests/ldi_i.c b/tests/ldi_i.c
index 6bb7a5997..e38978802 100644
--- a/tests/ldi_i.c
+++ b/tests/ldi_i.c
@@ -6,8 +6,10 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_ldi_i(j, JIT_R0, &data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void) = jit_end(j, NULL);
diff --git a/tests/ldi_l.c b/tests/ldi_l.c
index 1cb5efd38..f3fa729cb 100644
--- a/tests/ldi_l.c
+++ b/tests/ldi_l.c
@@ -7,8 +7,10 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
static uint64_t data = 0xffffffffffffffff;
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_ldi_l(j, JIT_R0, &data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void) = jit_end(j, NULL);
diff --git a/tests/ldi_s.c b/tests/ldi_s.c
index b7d2ff213..d9d1c4725 100644
--- a/tests/ldi_s.c
+++ b/tests/ldi_s.c
@@ -6,8 +6,10 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_ldi_s(j, JIT_R0, &data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void) = jit_end(j, NULL);
diff --git a/tests/ldi_uc.c b/tests/ldi_uc.c
index 68b082c2e..12f18bf17 100644
--- a/tests/ldi_uc.c
+++ b/tests/ldi_uc.c
@@ -6,8 +6,10 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_ldi_uc(j, JIT_R0, data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void) = jit_end(j, NULL);
diff --git a/tests/ldi_ui.c b/tests/ldi_ui.c
index 47fe2784d..d233694c6 100644
--- a/tests/ldi_ui.c
+++ b/tests/ldi_ui.c
@@ -7,8 +7,10 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
static uint32_t data[] = { 0xffffffff, 0x00000000, 0x42424242 };
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_ldi_ui(j, JIT_R0, data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void) = jit_end(j, NULL);
diff --git a/tests/ldi_us.c b/tests/ldi_us.c
index adaf1ee3c..70eb4a093 100644
--- a/tests/ldi_us.c
+++ b/tests/ldi_us.c
@@ -6,8 +6,10 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_ldi_us(j, JIT_R0, data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void) = jit_end(j, NULL);
diff --git a/tests/ldr_c.c b/tests/ldr_c.c
index ac851dbdd..07a59314b 100644
--- a/tests/ldr_c.c
+++ b/tests/ldr_c.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R1));
jit_ldr_c(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*) = jit_end(j, NULL);
diff --git a/tests/ldr_d.c b/tests/ldr_d.c
index 5f3073ada..37c75f096 100644
--- a/tests/ldr_d.c
+++ b/tests/ldr_d.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R1));
jit_ldr_d(j, JIT_F0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
double (*f)(void*) = jit_end(j, NULL);
diff --git a/tests/ldr_f.c b/tests/ldr_f.c
index c0776b6d3..bb6827848 100644
--- a/tests/ldr_f.c
+++ b/tests/ldr_f.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R1));
jit_ldr_f(j, JIT_F0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
float (*f)(void*) = jit_end(j, NULL);
diff --git a/tests/ldr_i.c b/tests/ldr_i.c
index 5f6de9912..3de9e5f2c 100644
--- a/tests/ldr_i.c
+++ b/tests/ldr_i.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R1));
jit_ldr_i(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*) = jit_end(j, NULL);
diff --git a/tests/ldr_l.c b/tests/ldr_l.c
index 6a3d0fc5a..15f00801e 100644
--- a/tests/ldr_l.c
+++ b/tests/ldr_l.c
@@ -7,9 +7,11 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
static uint64_t data[] = { 0xffffffffffffffff, 0, 0x4242424212345678 };
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R1));
jit_ldr_l(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*) = jit_end(j, NULL);
diff --git a/tests/ldr_s.c b/tests/ldr_s.c
index 61daa721b..cf668d5b3 100644
--- a/tests/ldr_s.c
+++ b/tests/ldr_s.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R1));
jit_ldr_s(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*) = jit_end(j, NULL);
diff --git a/tests/ldr_uc.c b/tests/ldr_uc.c
index 049630bf4..a48f37056 100644
--- a/tests/ldr_uc.c
+++ b/tests/ldr_uc.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R1));
jit_ldr_uc(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*) = jit_end(j, NULL);
diff --git a/tests/ldr_ui.c b/tests/ldr_ui.c
index 85a462c40..7668778b5 100644
--- a/tests/ldr_ui.c
+++ b/tests/ldr_ui.c
@@ -7,9 +7,11 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
static uint32_t data[] = { 0xffffffff, 0x00000000, 0x42424242 };
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R1));
jit_ldr_ui(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*) = jit_end(j, NULL);
diff --git a/tests/ldr_us.c b/tests/ldr_us.c
index 464108008..bb9928bf0 100644
--- a/tests/ldr_us.c
+++ b/tests/ldr_us.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R1));
jit_ldr_us(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*) = jit_end(j, NULL);
diff --git a/tests/ldxi_c.c b/tests/ldxi_c.c
index 82242af43..4271f9753 100644
--- a/tests/ldxi_c.c
+++ b/tests/ldxi_c.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_ldxi_c(j, JIT_R0, JIT_R0, (uintptr_t)&data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxi_d.c b/tests/ldxi_d.c
index db5af67bc..6bcf632cc 100644
--- a/tests/ldxi_d.c
+++ b/tests/ldxi_d.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_ldxi_d(j, JIT_F0, JIT_R0, (uintptr_t)data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
double (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxi_f.c b/tests/ldxi_f.c
index 0e91f74b9..9e65321d8 100644
--- a/tests/ldxi_f.c
+++ b/tests/ldxi_f.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_ldxi_f(j, JIT_F0, JIT_R0, (uintptr_t)data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
float (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxi_i.c b/tests/ldxi_i.c
index d6d2def08..d1f7b5605 100644
--- a/tests/ldxi_i.c
+++ b/tests/ldxi_i.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0));
jit_ldxi_i(j, JIT_R0, JIT_R0, (uintptr_t)data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxi_l.c b/tests/ldxi_l.c
index 6383166c2..bb1a8b257 100644
--- a/tests/ldxi_l.c
+++ b/tests/ldxi_l.c
@@ -7,9 +7,11 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
static uint64_t data[] = { 0xffffffffffffffff, 0, 0x4242424212345678 };
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_ldxi_l(j, JIT_R0, JIT_R0, (uintptr_t)data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxi_s.c b/tests/ldxi_s.c
index 698bcdba2..c9376d0fb 100644
--- a/tests/ldxi_s.c
+++ b/tests/ldxi_s.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_ldxi_s(j, JIT_R0, JIT_R0, (uintptr_t)data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxi_uc.c b/tests/ldxi_uc.c
index 35ddf2454..31d7b73d3 100644
--- a/tests/ldxi_uc.c
+++ b/tests/ldxi_uc.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_ldxi_uc(j, JIT_R0, JIT_R0, (uintptr_t)data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxi_ui.c b/tests/ldxi_ui.c
index 00a47598c..4f7e304a6 100644
--- a/tests/ldxi_ui.c
+++ b/tests/ldxi_ui.c
@@ -7,9 +7,11 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
static uint32_t data[] = { 0xffffffff, 0x00000000, 0x42424242 };
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_ldxi_ui(j, JIT_R0, JIT_R0, (uintptr_t)data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxi_us.c b/tests/ldxi_us.c
index edc71906b..81c984f1f 100644
--- a/tests/ldxi_us.c
+++ b/tests/ldxi_us.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_ldxi_us(j, JIT_R0, JIT_R0, (uintptr_t)data);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxr_c.c b/tests/ldxr_c.c
index c770e7eab..366f5b2f3 100644
--- a/tests/ldxr_c.c
+++ b/tests/ldxr_c.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_ldxr_c(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*, jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxr_d.c b/tests/ldxr_d.c
index 7267245ea..38a12fdd5 100644
--- a/tests/ldxr_d.c
+++ b/tests/ldxr_d.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_ldxr_d(j, JIT_F0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
double (*f)(void*, jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxr_f.c b/tests/ldxr_f.c
index 88aabc67f..c48b11f8f 100644
--- a/tests/ldxr_f.c
+++ b/tests/ldxr_f.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_ldxr_f(j, JIT_F0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
float (*f)(void*, jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxr_i.c b/tests/ldxr_i.c
index 774c682d1..e4149aade 100644
--- a/tests/ldxr_i.c
+++ b/tests/ldxr_i.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_ldxr_i(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*, jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxr_l.c b/tests/ldxr_l.c
index d143ede93..ee9f156a7 100644
--- a/tests/ldxr_l.c
+++ b/tests/ldxr_l.c
@@ -7,10 +7,12 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
static uint64_t data[] = { 0xffffffffffffffff, 0, 0x4242424212345678 };
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_ldxr_l(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*, jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxr_s.c b/tests/ldxr_s.c
index ca93140ab..fbb5c090c 100644
--- a/tests/ldxr_s.c
+++ b/tests/ldxr_s.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_ldxr_s(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*, jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxr_uc.c b/tests/ldxr_uc.c
index 70bcf13a9..846c552c2 100644
--- a/tests/ldxr_uc.c
+++ b/tests/ldxr_uc.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_ldxr_uc(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*, jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxr_ui.c b/tests/ldxr_ui.c
index 0c821ee06..cd774d355 100644
--- a/tests/ldxr_ui.c
+++ b/tests/ldxr_ui.c
@@ -7,10 +7,12 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
static uint32_t data[] = { 0xffffffff, 0x00000000, 0x42424242 };
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_ldxr_ui(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*, jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/ldxr_us.c b/tests/ldxr_us.c
index 32ce9233e..b7e408bb9 100644
--- a/tests/ldxr_us.c
+++ b/tests/ldxr_us.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_ldxr_us(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_uword_t (*f)(void*, jit_uword_t) = jit_end(j, NULL);
diff --git a/tests/lshi.c b/tests/lshi.c
index 8c25e40b0..e721af58b 100644
--- a/tests/lshi.c
+++ b/tests/lshi.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_lshi(j, JIT_R0, JIT_R0, 31);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/lshr.c b/tests/lshr.c
index 3861adb46..f81aa690a 100644
--- a/tests/lshr.c
+++ b/tests/lshr.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_lshr(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/mov_addr.c b/tests/mov_addr.c
index 0d7d9e071..b4a9aaae1 100644
--- a/tests/mov_addr.c
+++ b/tests/mov_addr.c
@@ -6,8 +6,10 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_patch_there(j, jit_mov_addr(j, JIT_R0), &thing);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
void* (*f)(void) = jit_end(j, NULL);
diff --git a/tests/movi_d.c b/tests/movi_d.c
index 58ec949fc..cb9e63d47 100644
--- a/tests/movi_d.c
+++ b/tests/movi_d.c
@@ -4,8 +4,10 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_movi_d(j, JIT_F0, 3.14159);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
double (*f)(void) = jit_end(j, NULL);
diff --git a/tests/movi_f.c b/tests/movi_f.c
index 0b92f9242..944f61589 100644
--- a/tests/movi_f.c
+++ b/tests/movi_f.c
@@ -4,8 +4,10 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_movi_f(j, JIT_F0, 3.14159f);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
float (*f)(void) = jit_end(j, NULL);
diff --git a/tests/mulr.c b/tests/mulr.c
index 7f39d3d6d..452e35dcb 100644
--- a/tests/mulr.c
+++ b/tests/mulr.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_mulr(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/mulr_d.c b/tests/mulr_d.c
index 460b14baf..945f1527d 100644
--- a/tests/mulr_d.c
+++ b/tests/mulr_d.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_mulr_d(j, JIT_F0, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
size_t size = 0;
diff --git a/tests/mulr_f.c b/tests/mulr_f.c
index 6189be263..2d0dd4ffa 100644
--- a/tests/mulr_f.c
+++ b/tests/mulr_f.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_mulr_f(j, JIT_F0, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
size_t size = 0;
diff --git a/tests/negr.c b/tests/negr.c
index cf9c84d69..18e27cbbb 100644
--- a/tests/negr.c
+++ b/tests/negr.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_negr(j, JIT_R0, JIT_R0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/negr_d.c b/tests/negr_d.c
index 566061c46..d0e168b8c 100644
--- a/tests/negr_d.c
+++ b/tests/negr_d.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0));
jit_negr_d(j, JIT_F0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
double (*f)(double) = jit_end(j, NULL);
diff --git a/tests/negr_f.c b/tests/negr_f.c
index 24b509f41..26110d560 100644
--- a/tests/negr_f.c
+++ b/tests/negr_f.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0));
jit_negr_f(j, JIT_F0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
float (*f)(float) = jit_end(j, NULL);
diff --git a/tests/nop.c b/tests/nop.c
index e2975c5d2..c029954d2 100644
--- a/tests/nop.c
+++ b/tests/nop.c
@@ -4,6 +4,7 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
size_t total = 0;
char *start = jit_address(j);
@@ -11,6 +12,7 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
jit_nop(j, i);
char *end = jit_address(j);
ASSERT(end - start == total);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_reti(j, 42);
jit_word_t (*f)(void) = jit_end(j, NULL);
diff --git a/tests/ori.c b/tests/ori.c
index 25a528e23..631018527 100644
--- a/tests/ori.c
+++ b/tests/ori.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_ori(j, JIT_R0, JIT_R0, 1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/orr.c b/tests/orr.c
index c7bf31375..5a9087a3d 100644
--- a/tests/orr.c
+++ b/tests/orr.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_orr(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/pushpop.c b/tests/pushpop.c
index de010c812..cd2420bdd 100644
--- a/tests/pushpop.c
+++ b/tests/pushpop.c
@@ -7,13 +7,11 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
const jit_fpr_t fpr[] = { JIT_F0, JIT_F1, JIT_F2 };
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 3, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
- 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]);
+ jit_pushr(j, JIT_R0);
// Stomple registers.
for (int i=0; i<6; i++)
@@ -21,11 +19,9 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
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_popr(j, JIT_R0);
+ jit_leave_jit_abi(j, 3, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/remr.c b/tests/remr.c
index 74c85e14e..805d6fbf9 100644
--- a/tests/remr.c
+++ b/tests/remr.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_remr(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/remr_u.c b/tests/remr_u.c
index 10a59522a..a9a01789a 100644
--- a/tests/remr_u.c
+++ b/tests/remr_u.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_remr_u(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/rshi.c b/tests/rshi.c
index ba20db6a6..c536055dc 100644
--- a/tests/rshi.c
+++ b/tests/rshi.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_rshi(j, JIT_R0, JIT_R0, 31);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/rshi_u.c b/tests/rshi_u.c
index c0e3d7193..8f6dbd4e3 100644
--- a/tests/rshi_u.c
+++ b/tests/rshi_u.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_rshi_u(j, JIT_R0, JIT_R0, 31);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
jit_word_t (*f)(jit_word_t) = jit_end(j, NULL);
diff --git a/tests/rshr.c b/tests/rshr.c
index c168b9513..b4b568907 100644
--- a/tests/rshr.c
+++ b/tests/rshr.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_rshr(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/rshr_u.c b/tests/rshr_u.c
index 0ff9c2878..64c59fddb 100644
--- a/tests/rshr_u.c
+++ b/tests/rshr_u.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_rshr_u(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/sqrtr_d.c b/tests/sqrtr_d.c
index 35e2230a7..873deb919 100644
--- a/tests/sqrtr_d.c
+++ b/tests/sqrtr_d.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0));
jit_sqrtr_d(j, JIT_F0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
double (*f)(double) = jit_end(j, NULL);
diff --git a/tests/sqrtr_f.c b/tests/sqrtr_f.c
index 0c3737337..66db83139 100644
--- a/tests/sqrtr_f.c
+++ b/tests/sqrtr_f.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0));
jit_sqrtr_f(j, JIT_F0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
float (*f)(float) = jit_end(j, NULL);
diff --git a/tests/sti_c.c b/tests/sti_c.c
index 61ae9b69d..ff6e6d563 100644
--- a/tests/sti_c.c
+++ b/tests/sti_c.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_INT8, JIT_R1));
jit_sti_c(j, &data[1], JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(int8_t) = jit_end(j, NULL);
diff --git a/tests/sti_d.c b/tests/sti_d.c
index c10b7b7dd..8a703e6b6 100644
--- a/tests/sti_d.c
+++ b/tests/sti_d.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0));
jit_sti_d(j, &data[1], JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(double) = jit_end(j, NULL);
diff --git a/tests/sti_f.c b/tests/sti_f.c
index 240152654..e0271925b 100644
--- a/tests/sti_f.c
+++ b/tests/sti_f.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0));
jit_sti_f(j, &data[1], JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(float) = jit_end(j, NULL);
diff --git a/tests/sti_i.c b/tests/sti_i.c
index c8bb72e73..4a233c657 100644
--- a/tests/sti_i.c
+++ b/tests/sti_i.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_INT32, JIT_R1));
jit_sti_i(j, &data[1], JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(int32_t) = jit_end(j, NULL);
diff --git a/tests/sti_l.c b/tests/sti_l.c
index 939a3e8e3..fce9180b2 100644
--- a/tests/sti_l.c
+++ b/tests/sti_l.c
@@ -7,9 +7,11 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
static uint64_t data[] = { 0x1212121212121212, 0, 0x3434343434343434 };
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_INT64, JIT_R1));
jit_sti_l(j, &data[1], JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(int64_t) = jit_end(j, NULL);
diff --git a/tests/sti_s.c b/tests/sti_s.c
index 4d4b27212..daab0bda2 100644
--- a/tests/sti_s.c
+++ b/tests/sti_s.c
@@ -6,9 +6,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_INT16, JIT_R1));
jit_sti_s(j, &data[1], JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(int16_t) = jit_end(j, NULL);
diff --git a/tests/str_c.c b/tests/str_c.c
index f8d7d7543..b894b8281 100644
--- a/tests/str_c.c
+++ b/tests/str_c.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_INT8, JIT_R1));
jit_str_c(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(void*, int8_t) = jit_end(j, NULL);
diff --git a/tests/str_d.c b/tests/str_d.c
index 817fd64a2..2f992a66a 100644
--- a/tests/str_d.c
+++ b/tests/str_d.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0));
jit_str_d(j, JIT_R0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(void*, double) = jit_end(j, NULL);
diff --git a/tests/str_f.c b/tests/str_f.c
index 22af0d580..fdad3c244 100644
--- a/tests/str_f.c
+++ b/tests/str_f.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0));
jit_str_f(j, JIT_R0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(void*, float) = jit_end(j, NULL);
diff --git a/tests/str_i.c b/tests/str_i.c
index 3872ed771..968f0ce91 100644
--- a/tests/str_i.c
+++ b/tests/str_i.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_INT32, JIT_R1));
jit_str_i(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(void*, int32_t) = jit_end(j, NULL);
diff --git a/tests/str_l.c b/tests/str_l.c
index ff91a18f1..450885b39 100644
--- a/tests/str_l.c
+++ b/tests/str_l.c
@@ -7,10 +7,12 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
static uint64_t data[] = { 0x1212121212121212, 0, 0x3434343434343434 };
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_INT64, JIT_R1));
jit_str_l(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(void*, int64_t) = jit_end(j, NULL);
diff --git a/tests/str_s.c b/tests/str_s.c
index 0044d8286..3e228edc7 100644
--- a/tests/str_s.c
+++ b/tests/str_s.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_INT16, JIT_R1));
jit_str_s(j, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(void*, int16_t) = jit_end(j, NULL);
diff --git a/tests/stxi_c.c b/tests/stxi_c.c
index 78982044f..d76d814f5 100644
--- a/tests/stxi_c.c
+++ b/tests/stxi_c.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R2),
jit_operand_gpr (JIT_OPERAND_ABI_INT8, JIT_R1));
jit_stxi_c(j, (uintptr_t)data, JIT_R2, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(jit_word_t, int8_t) = jit_end(j, NULL);
diff --git a/tests/stxi_d.c b/tests/stxi_d.c
index a63c335d8..3933c5692 100644
--- a/tests/stxi_d.c
+++ b/tests/stxi_d.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R2),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0));
jit_stxi_d(j, (uintptr_t)data, JIT_R2, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(jit_word_t, double) = jit_end(j, NULL);
diff --git a/tests/stxi_f.c b/tests/stxi_f.c
index 5a93679ff..aea6756cc 100644
--- a/tests/stxi_f.c
+++ b/tests/stxi_f.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R2),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0));
jit_stxi_f(j, (uintptr_t)data, JIT_R2, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(jit_word_t, float) = jit_end(j, NULL);
diff --git a/tests/stxi_i.c b/tests/stxi_i.c
index e320c9201..79dab03c4 100644
--- a/tests/stxi_i.c
+++ b/tests/stxi_i.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R2),
jit_operand_gpr (JIT_OPERAND_ABI_INT32, JIT_R1));
jit_stxi_i(j, (uintptr_t)data, JIT_R2, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(jit_word_t, int32_t) = jit_end(j, NULL);
diff --git a/tests/stxi_l.c b/tests/stxi_l.c
index af62d7de0..8a6824136 100644
--- a/tests/stxi_l.c
+++ b/tests/stxi_l.c
@@ -7,10 +7,12 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
static uint64_t data[] = { 0x1212121212121212, 0, 0x3434343434343434 };
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R2),
jit_operand_gpr (JIT_OPERAND_ABI_INT64, JIT_R1));
jit_stxi_l(j, (uintptr_t)data, JIT_R2, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(jit_word_t, int64_t) = jit_end(j, NULL);
diff --git a/tests/stxi_s.c b/tests/stxi_s.c
index 7bc8fa2cc..64bda5d6c 100644
--- a/tests/stxi_s.c
+++ b/tests/stxi_s.c
@@ -6,10 +6,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R2),
jit_operand_gpr (JIT_OPERAND_ABI_INT16, JIT_R1));
jit_stxi_s(j, (uintptr_t)data, JIT_R2, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(jit_word_t, int16_t) = jit_end(j, NULL);
diff --git a/tests/stxr_c.c b/tests/stxr_c.c
index c88d8cd6f..887685542 100644
--- a/tests/stxr_c.c
+++ b/tests/stxr_c.c
@@ -6,11 +6,13 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_3(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R2),
jit_operand_gpr (JIT_OPERAND_ABI_INT8, JIT_R1));
jit_stxr_c(j, JIT_R0, JIT_R2, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(void*, jit_word_t, int8_t) = jit_end(j, NULL);
diff --git a/tests/stxr_d.c b/tests/stxr_d.c
index f3fb9334d..e87688aa1 100644
--- a/tests/stxr_d.c
+++ b/tests/stxr_d.c
@@ -6,11 +6,13 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_3(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R2),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0));
jit_stxr_d(j, JIT_R0, JIT_R2, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(void*, jit_word_t, double) = jit_end(j, NULL);
diff --git a/tests/stxr_f.c b/tests/stxr_f.c
index 43aeaa9bd..bf0c47625 100644
--- a/tests/stxr_f.c
+++ b/tests/stxr_f.c
@@ -6,11 +6,13 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_3(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R2),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0));
jit_stxr_f(j, JIT_R0, JIT_R2, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(void*, jit_word_t, float) = jit_end(j, NULL);
diff --git a/tests/stxr_i.c b/tests/stxr_i.c
index 376354fca..82604627b 100644
--- a/tests/stxr_i.c
+++ b/tests/stxr_i.c
@@ -6,11 +6,13 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_3(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R2),
jit_operand_gpr (JIT_OPERAND_ABI_INT32, JIT_R1));
jit_stxr_i(j, JIT_R0, JIT_R2, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(void*, jit_word_t, int32_t) = jit_end(j, NULL);
diff --git a/tests/stxr_l.c b/tests/stxr_l.c
index 43c08d5d9..fa6bb1fbb 100644
--- a/tests/stxr_l.c
+++ b/tests/stxr_l.c
@@ -7,11 +7,13 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
static uint64_t data[] = { 0x1212121212121212, 0, 0x3434343434343434 };
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_3(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R2),
jit_operand_gpr (JIT_OPERAND_ABI_INT64, JIT_R1));
jit_stxr_l(j, JIT_R0, JIT_R2, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(void*, jit_word_t, int64_t) = jit_end(j, NULL);
diff --git a/tests/stxr_s.c b/tests/stxr_s.c
index 2cee20194..a93ccd9e9 100644
--- a/tests/stxr_s.c
+++ b/tests/stxr_s.c
@@ -6,11 +6,13 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_3(j, jit_operand_gpr (JIT_OPERAND_ABI_POINTER, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R2),
jit_operand_gpr (JIT_OPERAND_ABI_INT16, JIT_R1));
jit_stxr_s(j, JIT_R0, JIT_R2, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_ret(j);
void (*f)(void*, jit_word_t, int16_t) = jit_end(j, NULL);
diff --git a/tests/subr.c b/tests/subr.c
index 92b528fee..57cf950c7 100644
--- a/tests/subr.c
+++ b/tests/subr.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_subr(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/subr_d.c b/tests/subr_d.c
index 71259a8e3..bc611c52e 100644
--- a/tests/subr_d.c
+++ b/tests/subr_d.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F1));
jit_subr_d(j, JIT_F0, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_d(j, JIT_F0);
size_t size = 0;
diff --git a/tests/subr_f.c b/tests/subr_f.c
index 410dc265d..a7befecfa 100644
--- a/tests/subr_f.c
+++ b/tests/subr_f.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0),
jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F1));
jit_subr_f(j, JIT_F0, JIT_F0, JIT_F1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr_f(j, JIT_F0);
size_t size = 0;
diff --git a/tests/subx.c b/tests/subx.c
index cd1bb5b9c..b88bcbdb1 100644
--- a/tests/subx.c
+++ b/tests/subx.c
@@ -4,12 +4,14 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_movi(j, JIT_R2, 0);
jit_subcr(j, JIT_R0, JIT_R0, JIT_R1);
jit_subxi(j, JIT_R2, JIT_R2, 0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R2);
size_t size = 0;
diff --git a/tests/truncr_d_i.c b/tests/truncr_d_i.c
index 12aaa917d..b21280f77 100644
--- a/tests/truncr_d_i.c
+++ b/tests/truncr_d_i.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0));
jit_truncr_d_i(j, JIT_R0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
int (*f)(double) = jit_end(j, NULL);
diff --git a/tests/truncr_d_l.c b/tests/truncr_d_l.c
index 1f5dc995e..189617afb 100644
--- a/tests/truncr_d_l.c
+++ b/tests/truncr_d_l.c
@@ -5,9 +5,11 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
{
#if __WORDSIZE > 32
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_DOUBLE, JIT_F0));
jit_truncr_d_l(j, JIT_R0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
int64_t (*f)(double) = jit_end(j, NULL);
diff --git a/tests/truncr_f_i.c b/tests/truncr_f_i.c
index 077d7bec8..3dbf63050 100644
--- a/tests/truncr_f_i.c
+++ b/tests/truncr_f_i.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0));
jit_truncr_f_i(j, JIT_R0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
int (*f)(float) = jit_end(j, NULL);
diff --git a/tests/truncr_f_l.c b/tests/truncr_f_l.c
index c5a86f89b..7369ae3ad 100644
--- a/tests/truncr_f_l.c
+++ b/tests/truncr_f_l.c
@@ -5,9 +5,11 @@ run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
{
#if __WORDSIZE > 32
jit_begin(j, arena_base, arena_size);
+ size_t align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_fpr (JIT_OPERAND_ABI_FLOAT, JIT_F0));
jit_truncr_f_l(j, JIT_R0, JIT_F0);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
int64_t (*f)(float) = jit_end(j, NULL);
diff --git a/tests/xori.c b/tests/xori.c
index 1071a4cd9..4bb2ad1d8 100644
--- a/tests/xori.c
+++ b/tests/xori.c
@@ -4,9 +4,11 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_1(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0));
jit_xori(j, JIT_R0, JIT_R0, 1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;
diff --git a/tests/xorr.c b/tests/xorr.c
index a37a57004..dd5a3905c 100644
--- a/tests/xorr.c
+++ b/tests/xorr.c
@@ -4,10 +4,12 @@ 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 align = jit_enter_jit_abi(j, 0, 0, 0);
jit_load_args_2(j, jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R0),
jit_operand_gpr (JIT_OPERAND_ABI_WORD, JIT_R1));
jit_xorr(j, JIT_R0, JIT_R0, JIT_R1);
+ jit_leave_jit_abi(j, 0, 0, align);
jit_retr(j, JIT_R0);
size_t size = 0;