diff options
Diffstat (limited to 'tests/subr.c')
-rw-r--r-- | tests/subr.c | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/tests/subr.c b/tests/subr.c index e2c22bc..62ac130 100644 --- a/tests/subr.c +++ b/tests/subr.c @@ -1,26 +1,21 @@ -#include "test.h" +#include <ejit/ejit.h> +#include <assert.h> +#include "do_jit.h" -static void -run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size) +int main() { - 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)); + struct ejit_operand operands[2] = { + EJIT_OPERAND_GPR(0, EJIT_TYPE(long)), + EJIT_OPERAND_GPR(1, EJIT_TYPE(long)) + }; + struct ejit_func *f = ejit_create_func(EJIT_TYPE(long), 2, operands); - jit_subr(j, JIT_R0, JIT_R0, JIT_R1); - jit_leave_jit_abi(j, 0, 0, align); - jit_retr(j, JIT_R0); + ejit_subr(f, EJIT_GPR(0), EJIT_GPR(0), EJIT_GPR(1)); + ejit_retr(f, EJIT_GPR(0)); - size_t size = 0; - void* ret = jit_end(j, &size); + ejit_select_compile_func(f, 2, 0, EJIT_USE64(long), do_jit); - int (*f)(int, int) = ret; - ASSERT(f(42, 69) == -27); -} + assert(erf2(f, EJIT_ARG(42, long), EJIT_ARG(69, long)) == -27); -int -main (int argc, char *argv[]) -{ - return main_helper(argc, argv, run_test); + ejit_destroy_func(f); } |