From 55de56eeb3e62e5901d8676be1c77e7c2155328c Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 15 Dec 2022 20:43:45 -0600 Subject: [PATCH] changed interpreter style to continuation-passing instead of `switch`ed --- interpreter/build.sh | 2 +- interpreter/include/vm.h | 3 + interpreter/src/vm/vm.c | 1260 ++++++++++++--------- shared/lib/linux_x86_64/lib/libovmwasm.so | Bin 256608 -> 291856 bytes 4 files changed, 739 insertions(+), 526 deletions(-) diff --git a/interpreter/build.sh b/interpreter/build.sh index 778c7307..62803e3a 100755 --- a/interpreter/build.sh +++ b/interpreter/build.sh @@ -2,7 +2,7 @@ . ../settings.sh -# FLAGS="-g3 -DOVM_DEBUG=1" +# FLAGS="-g3 -O2 -DOVM_DEBUG=1" # FLAGS="-g3 -DOVM_VERBOSE=1" FLAGS="-Ofast" LIBS="-pthread" diff --git a/interpreter/include/vm.h b/interpreter/include/vm.h index 3dd52548..5b0b195c 100644 --- a/interpreter/include/vm.h +++ b/interpreter/include/vm.h @@ -105,6 +105,8 @@ bool ovm_program_load_from_file(ovm_program_t *program, ovm_engine_t *engine, ch // struct ovm_state_t { ovm_store_t *store; + ovm_engine_t *engine; + ovm_program_t *program; i32 pc; i32 value_number_offset; @@ -241,6 +243,7 @@ struct ovm_instr_t { #define OVM_INSTR_TYPE(instr) ((instr).full_instr >> 24) #define OVM_INSTR_INSTR(instr) ((instr).full_instr & 0xffffff) +#define OVM_INSTR_MASK 0xff #define OVMI_ATOMIC 0x00800000 // Flag an instruction as atomic diff --git a/interpreter/src/vm/vm.c b/interpreter/src/vm/vm.c index ca036621..e9f123c1 100644 --- a/interpreter/src/vm/vm.c +++ b/interpreter/src/vm/vm.c @@ -477,6 +477,8 @@ ovm_state_t *ovm_state_new(ovm_engine_t *engine, ovm_program_t *program) { ovm_state_t *state = bh_alloc_item(store->arena_allocator, ovm_state_t); state->store = store; + state->engine = engine; + state->program = program; state->pc = 0; state->value_number_offset = 0; @@ -538,9 +540,7 @@ void ovm_state_register_set(ovm_state_t *state, i32 idx, ovm_value_t val) { // // Function calling -static inline void ovm__func_setup_stack_frame(ovm_engine_t *engine, ovm_state_t *state, ovm_program_t *program, i32 func_idx, i32 result_number) { - ovm_func_t *func = &program->funcs[func_idx]; - +static inline void ovm__func_setup_stack_frame(ovm_state_t *state, ovm_func_t *func, i32 result_number) { // // Push a stack frame ovm_stack_frame_t frame; @@ -566,7 +566,7 @@ static inline void ovm__func_setup_stack_frame(ovm_engine_t *engine, ovm_state_t } } -static inline ovm_stack_frame_t ovm__func_teardown_stack_frame(ovm_engine_t *engine, ovm_state_t *state, ovm_program_t *program) { +static inline ovm_stack_frame_t ovm__func_teardown_stack_frame(ovm_state_t *state) { ovm_stack_frame_t frame = bh_arr_pop(state->stack_frames); bh_arr_fastdeleten(state->numbered_values, frame.value_number_count); @@ -587,31 +587,31 @@ static inline ovm_stack_frame_t ovm__func_teardown_stack_frame(ovm_engine_t *eng } ovm_value_t ovm_func_call(ovm_engine_t *engine, ovm_state_t *state, ovm_program_t *program, i32 func_idx, i32 param_count, ovm_value_t *params) { - ovm_func_t func = program->funcs[func_idx]; + ovm_func_t *func = &program->funcs[func_idx]; ovm_assert(func.value_number_count >= func.param_count); - switch (func.kind) { + switch (func->kind) { case OVM_FUNC_INTERNAL: { - ovm__func_setup_stack_frame(engine, state, program, func_idx, 0); + ovm__func_setup_stack_frame(state, func, 0); fori (i, 0, param_count) { state->numbered_values[i + state->value_number_offset] = params[i]; } - state->pc = func.start_instr; + state->pc = func->start_instr; ovm_value_t result = ovm_run_code(engine, state, program); return result; } case OVM_FUNC_EXTERNAL: { - ovm__func_setup_stack_frame(engine, state, program, func_idx, 0); + ovm__func_setup_stack_frame(state, func, 0); ovm_value_t result = {0}; - ovm_external_func_t external_func = state->external_funcs[func.external_func_idx]; + ovm_external_func_t external_func = state->external_funcs[func->external_func_idx]; external_func.native_func(external_func.userdata, params, &result); - ovm__func_teardown_stack_frame(engine, state, program); + ovm__func_teardown_stack_frame(state); return result; } @@ -671,573 +671,575 @@ static inline void __ovm_trigger_exception(ovm_state_t *state) { } } +static inline void __ovm_debug_hook(ovm_engine_t *engine, ovm_state_t *state) { + if (!state->debug) return; + + if (state->debug->run_count == 0) { + state->debug->state = debug_state_pausing; + + if (state->debug->started) { + state->debug->pause_reason = debug_pause_step; + } else { + state->debug->pause_reason = debug_pause_entry; + state->debug->started = 1; + } + + goto should_wait; + } + + if (state->debug->pause_at_next_line) { + if (state->debug->pause_within == -1 || state->debug->pause_within == bh_arr_last(state->stack_frames).func->id) { + + debug_loc_info_t l1, l2; + debug_info_lookup_location(engine->debug->info, state->pc - 1, &l1); + debug_info_lookup_location(engine->debug->info, state->pc, &l2); + + if (l1.file_id != l2.file_id || l1.line != l2.line) { + state->debug->pause_at_next_line = false; + state->debug->pause_reason = debug_pause_step; + state->debug->state = debug_state_pausing; + goto should_wait; + } + } + } + + ovm_assert(engine->debug); + bh_arr_each(debug_breakpoint_t, bp, engine->debug->breakpoints) { + if (bp->instr == (u32) state->pc) { + state->debug->state = debug_state_hit_breakpoint; + state->debug->last_breakpoint_hit = bp->id; + goto should_wait; + } + } + + goto shouldnt_wait; + + should_wait: + assert(write(state->debug->state_change_write_fd, "1", 1)); + sem_wait(&state->debug->wait_semaphore); + state->debug->state = debug_state_running; + + shouldnt_wait: + if (state->debug->run_count > 0) state->debug->run_count--; +} + + + +// +// Running code with Continuation-Passing Style +// -ovm_value_t ovm_run_code(ovm_engine_t *engine, ovm_state_t *state, ovm_program_t *program) { - ovm_assert(engine); - ovm_assert(state); - ovm_assert(program); + + +#define OVMI_INSTR_PROTO(name) \ + ovm_value_t name(ovm_instr_t *instr, ovm_state_t *state, u8 *memory, ovm_instr_t *code) + +#define OVMI_INSTR_EXEC(name) \ + static OVMI_INSTR_PROTO(name) + +#define NEXT_OP \ + if (instr->full_instr & OVMI_ATOMIC) pthread_mutex_unlock(&state->engine->atomic_mutex); \ + __ovm_debug_hook(state->engine, state); \ + instr = &code[state->pc++]; \ + if (instr->full_instr & OVMI_ATOMIC) pthread_mutex_lock(&state->engine->atomic_mutex); \ + return ovmi_dispatch[instr->full_instr & OVM_INSTR_MASK](instr, state, memory, code); #define VAL(loc) state->numbered_values[(u32) (loc + state->value_number_offset)] - ovm_instr_t *code = program->code; - bool release_mutex_at_end = false; - ovm_value_t tmp_val; +typedef OVMI_INSTR_PROTO((* ovmi_instr_exec_t)); - while (state->pc < bh_arr_length(program->code)) { -#ifdef OVM_VERBOSE - ovm_program_print_instructions(program, state->pc, 1); -#endif +static ovmi_instr_exec_t ovmi_dispatch[]; - tmp_val.type = OVM_TYPE_NONE; - tmp_val.u64 = 0; - // Check if breakpoints are hit - if (state->debug) { - if (state->debug->run_count == 0) { - state->debug->state = debug_state_pausing; +// +// Special Operations +// - if (state->debug->started) { - state->debug->pause_reason = debug_pause_step; - } else { - state->debug->pause_reason = debug_pause_entry; - state->debug->started = 1; - } +OVMI_INSTR_EXEC(ovmi_exec_nop) { + NEXT_OP; +} - goto should_wait; - } - if (state->debug->pause_at_next_line) { - if (state->debug->pause_within == -1 || state->debug->pause_within == bh_arr_last(state->stack_frames).func->id) { +// +// Binary Operations +// - debug_loc_info_t l1, l2; - debug_info_lookup_location(engine->debug->info, state->pc - 1, &l1); - debug_info_lookup_location(engine->debug->info, state->pc, &l2); +#define OVM_OP_EXEC(name, op) \ + OVMI_INSTR_EXEC(ovmi_exec_##name) { \ + switch (OVM_INSTR_TYPE(*instr)) { \ + OVM_OP(OVM_TYPE_I8 , op, i8) \ + OVM_OP(OVM_TYPE_I16, op, i16) \ + OVM_OP(OVM_TYPE_I32, op, i32) \ + OVM_OP(OVM_TYPE_I64, op, i64) \ + OVM_OP(OVM_TYPE_F32, op, f32) \ + OVM_OP(OVM_TYPE_F64, op, f64) \ + } \ + NEXT_OP; \ + } - if (l1.file_id != l2.file_id || l1.line != l2.line) { - state->debug->pause_at_next_line = false; - state->debug->pause_reason = debug_pause_step; - state->debug->state = debug_state_pausing; - goto should_wait; - } - } - } +#define OVM_OP_UNSIGNED_EXEC(name, op) \ + OVMI_INSTR_EXEC(ovmi_exec_##name) { \ + switch (OVM_INSTR_TYPE(*instr)) { \ + OVM_OP(OVM_TYPE_I8 , op, u8) \ + OVM_OP(OVM_TYPE_I16, op, u16) \ + OVM_OP(OVM_TYPE_I32, op, u32) \ + OVM_OP(OVM_TYPE_I64, op, u64) \ + OVM_OP(OVM_TYPE_F32, op, f32) \ + OVM_OP(OVM_TYPE_F64, op, f64) \ + } \ + NEXT_OP; \ + } - ovm_assert(engine->debug); - bh_arr_each(debug_breakpoint_t, bp, engine->debug->breakpoints) { - if (bp->instr == (u32) state->pc) { - state->debug->state = debug_state_hit_breakpoint; - state->debug->last_breakpoint_hit = bp->id; - goto should_wait; - } - } +#define OVM_OP_INTEGER_EXEC(name, op) \ + OVMI_INSTR_EXEC(ovmi_exec_##name) { \ + switch (OVM_INSTR_TYPE(*instr)) { \ + OVM_OP(OVM_TYPE_I8 , op, i8) \ + OVM_OP(OVM_TYPE_I16, op, i16) \ + OVM_OP(OVM_TYPE_I32, op, i32) \ + OVM_OP(OVM_TYPE_I64, op, i64) \ + } \ + NEXT_OP; \ + } - goto shouldnt_wait; +#define OVM_OP_INTEGER_UNSIGNED_EXEC(name, op) \ + OVMI_INSTR_EXEC(ovmi_exec_##name) { \ + switch (OVM_INSTR_TYPE(*instr)) { \ + OVM_OP(OVM_TYPE_I8 , op, u8) \ + OVM_OP(OVM_TYPE_I16, op, u16) \ + OVM_OP(OVM_TYPE_I32, op, u32) \ + OVM_OP(OVM_TYPE_I64, op, u64) \ + } \ + NEXT_OP; \ + } - should_wait: - assert(write(state->debug->state_change_write_fd, "1", 1)); - sem_wait(&state->debug->wait_semaphore); - state->debug->state = debug_state_running; +#define OVM_OP_FLOAT_EXEC(name, op) \ + OVMI_INSTR_EXEC(ovmi_exec_##name) { \ + switch (OVM_INSTR_TYPE(*instr)) { \ + OVM_OP(OVM_TYPE_F32, op, f32) \ + OVM_OP(OVM_TYPE_F64, op, f64) \ + } \ + NEXT_OP; \ + } - shouldnt_wait: - if (state->debug->run_count > 0) state->debug->run_count--; - } +#define OVM_OP(t, op, ctype) \ + case t: \ + ovm_assert(VAL(instr->a).type == t && VAL(instr->b).type == t); \ + VAL(instr->r).ctype = VAL(instr->a).ctype op VAL(instr->b).ctype; \ + VAL(instr->r).type = t; \ + break; + +OVM_OP_EXEC(add, +) +OVM_OP_EXEC(sub, -) +OVM_OP_EXEC(mul, *) +OVM_OP_EXEC(div_s, /) +OVM_OP_UNSIGNED_EXEC(div, /) +OVM_OP_INTEGER_UNSIGNED_EXEC(rem, %) +OVM_OP_INTEGER_EXEC(rem_s, %) +OVM_OP_INTEGER_UNSIGNED_EXEC(and, &) +OVM_OP_INTEGER_UNSIGNED_EXEC(or, |) +OVM_OP_INTEGER_UNSIGNED_EXEC(xor, ^) +OVM_OP_INTEGER_UNSIGNED_EXEC(shl, <<) +OVM_OP_INTEGER_UNSIGNED_EXEC(shr, >>) +OVM_OP_INTEGER_EXEC(sar, >>) - // - // Incrementing the program counter here. - // All instructions that compute something relative - // to the program counter have to know that the program - // counter will refer to the instruction AFTER the one - // being executed. - brendanfh 2022/06/13 - ovm_instr_t instr = code[state->pc++]; - - if (instr.full_instr & OVMI_ATOMIC) { - pthread_mutex_lock(&engine->atomic_mutex); - release_mutex_at_end = true; - - instr.full_instr &= ~OVMI_ATOMIC; - } +#undef OVM_OP + +#define OVM_OP(t, func, ctype) \ + case t: \ + ovm_assert(VAL(instr->a).type == t && VAL(instr->b).type == t); \ + VAL(instr->r).ctype = func( VAL(instr->a).ctype, VAL(instr->b).ctype ); \ + VAL(instr->r).type = t; \ + break; + +OVMI_INSTR_EXEC(ovmi_exec_rotl) { + switch (OVM_INSTR_TYPE(*instr)) { + OVM_OP(OVM_TYPE_I8 , __rolb, u8) + OVM_OP(OVM_TYPE_I16, __rolw, u16) + OVM_OP(OVM_TYPE_I32, __rold, u32) + OVM_OP(OVM_TYPE_I64, __rolq, u64) + } + NEXT_OP; +} + +OVMI_INSTR_EXEC(ovmi_exec_rotr) { + switch (OVM_INSTR_TYPE(*instr)) { + OVM_OP(OVM_TYPE_I8 , __rorb, u8) + OVM_OP(OVM_TYPE_I16, __rorw, u16) + OVM_OP(OVM_TYPE_I32, __rord, u32) + OVM_OP(OVM_TYPE_I64, __rorq, u64) + } + NEXT_OP; +} - switch (instr.full_instr) { - case OVMI_NOP: break; - -#define OVM_OP(i, t, op, ctype) \ - case OVM_TYPED_INSTR(i, t): \ - ovm_assert(VAL(instr.a).type == t && VAL(instr.b).type == t); \ - tmp_val.type = t; \ - tmp_val.ctype = VAL(instr.a).ctype op VAL(instr.b).ctype; \ - VAL(instr.r) = tmp_val; \ - break; - - OVM_OP(OVMI_ADD, OVM_TYPE_I8 , +, i8) - OVM_OP(OVMI_ADD, OVM_TYPE_I16, +, i16) - OVM_OP(OVMI_ADD, OVM_TYPE_I32, +, i32) - OVM_OP(OVMI_ADD, OVM_TYPE_I64, +, i64) - OVM_OP(OVMI_ADD, OVM_TYPE_F32, +, f32) - OVM_OP(OVMI_ADD, OVM_TYPE_F64, +, f64) - - OVM_OP(OVMI_SUB, OVM_TYPE_I8 , -, i8) - OVM_OP(OVMI_SUB, OVM_TYPE_I16, -, i16) - OVM_OP(OVMI_SUB, OVM_TYPE_I32, -, i32) - OVM_OP(OVMI_SUB, OVM_TYPE_I64, -, i64) - OVM_OP(OVMI_SUB, OVM_TYPE_F32, -, f32) - OVM_OP(OVMI_SUB, OVM_TYPE_F64, -, f64) - - OVM_OP(OVMI_MUL, OVM_TYPE_I8 , *, i8) - OVM_OP(OVMI_MUL, OVM_TYPE_I16, *, i16) - OVM_OP(OVMI_MUL, OVM_TYPE_I32, *, i32) - OVM_OP(OVMI_MUL, OVM_TYPE_I64, *, i64) - OVM_OP(OVMI_MUL, OVM_TYPE_F32, *, f32) - OVM_OP(OVMI_MUL, OVM_TYPE_F64, *, f64) - - OVM_OP(OVMI_DIV, OVM_TYPE_I8 , /, u8) - OVM_OP(OVMI_DIV, OVM_TYPE_I16, /, u16) - OVM_OP(OVMI_DIV, OVM_TYPE_I32, /, u32) - OVM_OP(OVMI_DIV, OVM_TYPE_I64, /, u64) - OVM_OP(OVMI_DIV, OVM_TYPE_F32, /, f32) - OVM_OP(OVMI_DIV, OVM_TYPE_F64, /, f64) - - OVM_OP(OVMI_DIV_S, OVM_TYPE_I8 , /, i8) - OVM_OP(OVMI_DIV_S, OVM_TYPE_I16, /, i16) - OVM_OP(OVMI_DIV_S, OVM_TYPE_I32, /, i32) - OVM_OP(OVMI_DIV_S, OVM_TYPE_I64, /, i64) - OVM_OP(OVMI_DIV_S, OVM_TYPE_F32, /, f32) - OVM_OP(OVMI_DIV_S, OVM_TYPE_F64, /, f64) - - OVM_OP(OVMI_REM, OVM_TYPE_I8 , %, u8) - OVM_OP(OVMI_REM, OVM_TYPE_I16, %, u16) - OVM_OP(OVMI_REM, OVM_TYPE_I32, %, u32) - OVM_OP(OVMI_REM, OVM_TYPE_I64, %, u64) - - OVM_OP(OVMI_REM_S, OVM_TYPE_I8 , %, i8) - OVM_OP(OVMI_REM_S, OVM_TYPE_I16, %, i16) - OVM_OP(OVMI_REM_S, OVM_TYPE_I32, %, i32) - OVM_OP(OVMI_REM_S, OVM_TYPE_I64, %, i64) - - OVM_OP(OVMI_AND, OVM_TYPE_I8 , &, u8) - OVM_OP(OVMI_AND, OVM_TYPE_I16, &, u16) - OVM_OP(OVMI_AND, OVM_TYPE_I32, &, u32) - OVM_OP(OVMI_AND, OVM_TYPE_I64, &, u64) - - OVM_OP(OVMI_OR, OVM_TYPE_I8 , |, u8) - OVM_OP(OVMI_OR, OVM_TYPE_I16, |, u16) - OVM_OP(OVMI_OR, OVM_TYPE_I32, |, u32) - OVM_OP(OVMI_OR, OVM_TYPE_I64, |, u64) - - OVM_OP(OVMI_XOR, OVM_TYPE_I8 , ^, u8) - OVM_OP(OVMI_XOR, OVM_TYPE_I16, ^, u16) - OVM_OP(OVMI_XOR, OVM_TYPE_I32, ^, u32) - OVM_OP(OVMI_XOR, OVM_TYPE_I64, ^, u64) - - OVM_OP(OVMI_SHL, OVM_TYPE_I8 , <<, u8) - OVM_OP(OVMI_SHL, OVM_TYPE_I16, <<, u16) - OVM_OP(OVMI_SHL, OVM_TYPE_I32, <<, u32) - OVM_OP(OVMI_SHL, OVM_TYPE_I64, <<, u64) - - OVM_OP(OVMI_SHR, OVM_TYPE_I8 , >>, u8) - OVM_OP(OVMI_SHR, OVM_TYPE_I16, >>, u16) - OVM_OP(OVMI_SHR, OVM_TYPE_I32, >>, u32) - OVM_OP(OVMI_SHR, OVM_TYPE_I64, >>, u64) - - OVM_OP(OVMI_SAR, OVM_TYPE_I8 , >>, i8) - OVM_OP(OVMI_SAR, OVM_TYPE_I16, >>, i16) - OVM_OP(OVMI_SAR, OVM_TYPE_I32, >>, i32) - OVM_OP(OVMI_SAR, OVM_TYPE_I64, >>, i64) +OVM_OP_FLOAT_EXEC(min, bh_min) +OVM_OP_FLOAT_EXEC(max, bh_max) +OVM_OP_FLOAT_EXEC(copysign, __ovm_copysign) #undef OVM_OP -#define OVM_OP(i, t, func, ctype) \ - case OVM_TYPED_INSTR(i, t): \ - ovm_assert(VAL(instr.a).type == t && VAL(instr.b).type == t); \ - tmp_val.type = t; \ - tmp_val.ctype = func( VAL(instr.a).ctype, VAL(instr.b).ctype ); \ - VAL(instr.r) = tmp_val; \ - break; - OVM_OP(OVMI_ROTL, OVM_TYPE_I8 , __rolb, u8) - OVM_OP(OVMI_ROTL, OVM_TYPE_I16, __rolw, u16) - OVM_OP(OVMI_ROTL, OVM_TYPE_I32, __rold, u32) - OVM_OP(OVMI_ROTL, OVM_TYPE_I64, __rolq, u64) +#define OVM_OP(t, op, ctype) \ + case t: \ + ovm_assert(VAL(instr->a).type == t); \ + VAL(instr->r).type = t; \ + VAL(instr->r).ctype = (ctype) op (VAL(instr->a).ctype); \ + break; - OVM_OP(OVMI_ROTR, OVM_TYPE_I8 , __rorb, u8) - OVM_OP(OVMI_ROTR, OVM_TYPE_I16, __rorw, u16) - OVM_OP(OVMI_ROTR, OVM_TYPE_I32, __rord, u32) - OVM_OP(OVMI_ROTR, OVM_TYPE_I64, __rorq, u64) +OVMI_INSTR_EXEC(ovmi_exec_clz) { + switch (OVM_INSTR_TYPE(*instr)) { + OVM_OP(OVM_TYPE_I8 , __builtin_clz, u8) + OVM_OP(OVM_TYPE_I16, __builtin_clz, u16) + OVM_OP(OVM_TYPE_I32, __builtin_clz, u32) + OVM_OP(OVM_TYPE_I64, __builtin_clzll, u64) + } + NEXT_OP; +} - OVM_OP(OVMI_MIN, OVM_TYPE_F32, bh_min, f32) - OVM_OP(OVMI_MAX, OVM_TYPE_F32, bh_max, f32) +OVMI_INSTR_EXEC(ovmi_exec_ctz) { + switch (OVM_INSTR_TYPE(*instr)) { + OVM_OP(OVM_TYPE_I8 , __builtin_ctz, u8) + OVM_OP(OVM_TYPE_I16, __builtin_ctz, u16) + OVM_OP(OVM_TYPE_I32, __builtin_ctz, u32) + OVM_OP(OVM_TYPE_I64, __builtin_ctzll, u64) + } + NEXT_OP; +} + +OVMI_INSTR_EXEC(ovmi_exec_popcount) { + switch (OVM_INSTR_TYPE(*instr)) { + OVM_OP(OVM_TYPE_I8 , __builtin_popcount, u8) + OVM_OP(OVM_TYPE_I16, __builtin_popcount, u16) + OVM_OP(OVM_TYPE_I32, __builtin_popcount, u32) + OVM_OP(OVM_TYPE_I64, __builtin_popcountll, u64) + } + NEXT_OP; +} - OVM_OP(OVMI_MIN, OVM_TYPE_F64, bh_min, f64) - OVM_OP(OVMI_MAX, OVM_TYPE_F64, bh_max, f64) +OVM_OP_FLOAT_EXEC(abs, __ovm_abs) +OVM_OP_FLOAT_EXEC(neg, -) +OVM_OP_FLOAT_EXEC(ceil, __ovm_ceil) +OVM_OP_FLOAT_EXEC(floor, __ovm_floor) +OVM_OP_FLOAT_EXEC(trunc, __ovm_trunc) +OVM_OP_FLOAT_EXEC(nearest, __ovm_nearest) +OVM_OP_FLOAT_EXEC(sqrt, sqrt) #undef OVM_OP -#define OVM_OP(i, t, op, ctype) \ - case OVM_TYPED_INSTR(i, t): \ - ovm_assert(VAL(instr.a).type == t); \ - tmp_val.type = t; \ - tmp_val.ctype = (ctype) op (VAL(instr.a).ctype); \ - VAL(instr.r) = tmp_val; \ - break; - - OVM_OP(OVMI_CLZ, OVM_TYPE_I8 , __builtin_clz, u8) - OVM_OP(OVMI_CLZ, OVM_TYPE_I16, __builtin_clz, u16) - OVM_OP(OVMI_CLZ, OVM_TYPE_I32, __builtin_clz, u32) - OVM_OP(OVMI_CLZ, OVM_TYPE_I64, __builtin_clzll, u64) - - OVM_OP(OVMI_CTZ, OVM_TYPE_I8 , __builtin_ctz, u8) - OVM_OP(OVMI_CTZ, OVM_TYPE_I16, __builtin_ctz, u16) - OVM_OP(OVMI_CTZ, OVM_TYPE_I32, __builtin_ctz, u32) - OVM_OP(OVMI_CTZ, OVM_TYPE_I64, __builtin_ctzll, u64) - - OVM_OP(OVMI_POPCNT, OVM_TYPE_I8 , __builtin_popcount, u8) - OVM_OP(OVMI_POPCNT, OVM_TYPE_I16, __builtin_popcount, u16) - OVM_OP(OVMI_POPCNT, OVM_TYPE_I32, __builtin_popcount, u32) - OVM_OP(OVMI_POPCNT, OVM_TYPE_I64, __builtin_popcountll, u64) - - OVM_OP(OVMI_ABS, OVM_TYPE_F32, __ovm_abs, f32); - OVM_OP(OVMI_NEG, OVM_TYPE_F32, -, f32); - OVM_OP(OVMI_CEIL, OVM_TYPE_F32, __ovm_ceil, f32); - OVM_OP(OVMI_FLOOR, OVM_TYPE_F32, __ovm_floor, f32); - OVM_OP(OVMI_TRUNC, OVM_TYPE_F32, __ovm_trunc, f32); - OVM_OP(OVMI_NEAREST, OVM_TYPE_F32, __ovm_nearest, f32); - OVM_OP(OVMI_SQRT, OVM_TYPE_F32, sqrt, f32); // TODO: REMOVE THE NEED FOR libm!!! - - OVM_OP(OVMI_ABS, OVM_TYPE_F64, __ovm_abs, f64); - OVM_OP(OVMI_NEG, OVM_TYPE_F64, -, f64); - OVM_OP(OVMI_CEIL, OVM_TYPE_F64, __ovm_ceil, f64); - OVM_OP(OVMI_FLOOR, OVM_TYPE_F64, __ovm_floor, f64); - OVM_OP(OVMI_TRUNC, OVM_TYPE_F64, __ovm_trunc, f64); - OVM_OP(OVMI_NEAREST, OVM_TYPE_F64, __ovm_nearest, f64); - OVM_OP(OVMI_SQRT, OVM_TYPE_F64, sqrt, f64); // TODO: REMOVE THE NEED FOR libm!!! + +#define OVM_OP(t, op, ctype) \ + case t: \ + ovm_assert(VAL(instr->a).type == t && VAL(instr->b).type == t); \ + VAL(instr->r).type = OVM_TYPE_I32; \ + VAL(instr->r).i32 = ((VAL(instr->a).ctype op VAL(instr->b).ctype)) ? 1 : 0; \ + break; + +OVM_OP_EXEC(eq, ==) +OVM_OP_EXEC(ne, !=) +OVM_OP_UNSIGNED_EXEC(lt, <) +OVM_OP_UNSIGNED_EXEC(le, <=) +OVM_OP_UNSIGNED_EXEC(gt, >) +OVM_OP_UNSIGNED_EXEC(ge, >=) +OVM_OP_EXEC(lt_s, <) +OVM_OP_EXEC(le_s, <=) +OVM_OP_EXEC(gt_s, >) +OVM_OP_EXEC(ge_s, >=) #undef OVM_OP -#define OVM_OP(i, t, op, ctype, cast_type) \ - case OVM_TYPED_INSTR(i, t): \ - ovm_assert(VAL(instr.a).type == t && VAL(instr.b).type == t); \ - tmp_val.type = OVM_TYPE_I32; \ - tmp_val.i32 = ((VAL(instr.a).ctype op VAL(instr.b).ctype)) ? 1 : 0; \ - VAL(instr.r) = tmp_val; \ - break; - - OVM_OP(OVMI_LT, OVM_TYPE_I8 , <, u8, u8) - OVM_OP(OVMI_LT, OVM_TYPE_I16, <, u16, u16) - OVM_OP(OVMI_LT, OVM_TYPE_I32, <, u32, u32) - OVM_OP(OVMI_LT, OVM_TYPE_I64, <, u64, u64) - OVM_OP(OVMI_LT, OVM_TYPE_F32, <, f32, f32) - OVM_OP(OVMI_LT, OVM_TYPE_F64, <, f64, f32) - - OVM_OP(OVMI_LT_S, OVM_TYPE_I8 , <, i8, i8) - OVM_OP(OVMI_LT_S, OVM_TYPE_I16, <, i16, i16) - OVM_OP(OVMI_LT_S, OVM_TYPE_I32, <, i32, i32) - OVM_OP(OVMI_LT_S, OVM_TYPE_I64, <, i64, i64) - OVM_OP(OVMI_LT_S, OVM_TYPE_F32, <, f32, f32) - OVM_OP(OVMI_LT_S, OVM_TYPE_F64, <, f64, f32) - - OVM_OP(OVMI_LE, OVM_TYPE_I8 , <=, u8, u8) - OVM_OP(OVMI_LE, OVM_TYPE_I16, <=, u16, u16) - OVM_OP(OVMI_LE, OVM_TYPE_I32, <=, u32, u32) - OVM_OP(OVMI_LE, OVM_TYPE_I64, <=, u64, u64) - OVM_OP(OVMI_LE, OVM_TYPE_F32, <=, f32, f32) - OVM_OP(OVMI_LE, OVM_TYPE_F64, <=, f64, f64) - - OVM_OP(OVMI_LE_S, OVM_TYPE_I8 , <=, i8, i8) - OVM_OP(OVMI_LE_S, OVM_TYPE_I16, <=, i16, i16) - OVM_OP(OVMI_LE_S, OVM_TYPE_I32, <=, i32, i32) - OVM_OP(OVMI_LE_S, OVM_TYPE_I64, <=, i64, i64) - OVM_OP(OVMI_LE_S, OVM_TYPE_F32, <=, f32, f32) - OVM_OP(OVMI_LE_S, OVM_TYPE_F64, <=, f64, f64) - - OVM_OP(OVMI_EQ, OVM_TYPE_I8 , ==, i8, i8) - OVM_OP(OVMI_EQ, OVM_TYPE_I16, ==, i16, i16) - OVM_OP(OVMI_EQ, OVM_TYPE_I32, ==, i32, i32) - OVM_OP(OVMI_EQ, OVM_TYPE_I64, ==, i64, i64) - OVM_OP(OVMI_EQ, OVM_TYPE_F32, ==, f32, f32) - OVM_OP(OVMI_EQ, OVM_TYPE_F64, ==, f64, f64) - - OVM_OP(OVMI_GE, OVM_TYPE_I8 , >=, u8, u8) - OVM_OP(OVMI_GE, OVM_TYPE_I16, >=, u16, u16) - OVM_OP(OVMI_GE, OVM_TYPE_I32, >=, u32, u32) - OVM_OP(OVMI_GE, OVM_TYPE_I64, >=, u64, u64) - OVM_OP(OVMI_GE, OVM_TYPE_F32, >=, f32, f32) - OVM_OP(OVMI_GE, OVM_TYPE_F64, >=, f64, f64) - - OVM_OP(OVMI_GE_S, OVM_TYPE_I8 , >=, i8, i8) - OVM_OP(OVMI_GE_S, OVM_TYPE_I16, >=, i16, i16) - OVM_OP(OVMI_GE_S, OVM_TYPE_I32, >=, i32, i32) - OVM_OP(OVMI_GE_S, OVM_TYPE_I64, >=, i64, i64) - OVM_OP(OVMI_GE_S, OVM_TYPE_F32, >=, f32, f32) - OVM_OP(OVMI_GE_S, OVM_TYPE_F64, >=, f64, f64) - - OVM_OP(OVMI_GT, OVM_TYPE_I8 , >, u8, u8) - OVM_OP(OVMI_GT, OVM_TYPE_I16, >, u16, u16) - OVM_OP(OVMI_GT, OVM_TYPE_I32, >, u32, u32) - OVM_OP(OVMI_GT, OVM_TYPE_I64, >, u64, u64) - OVM_OP(OVMI_GT, OVM_TYPE_F32, >, f32, f32) - OVM_OP(OVMI_GT, OVM_TYPE_F64, >, f64, f64) - - OVM_OP(OVMI_GT_S, OVM_TYPE_I8 , >, i8, i8) - OVM_OP(OVMI_GT_S, OVM_TYPE_I16, >, i16, i16) - OVM_OP(OVMI_GT_S, OVM_TYPE_I32, >, i32, i32) - OVM_OP(OVMI_GT_S, OVM_TYPE_I64, >, i64, i64) - OVM_OP(OVMI_GT_S, OVM_TYPE_F32, >, f32, f32) - OVM_OP(OVMI_GT_S, OVM_TYPE_F64, >, f64, f64) - - OVM_OP(OVMI_NE, OVM_TYPE_I8 , !=, i8, i8) - OVM_OP(OVMI_NE, OVM_TYPE_I16, !=, i16, i16) - OVM_OP(OVMI_NE, OVM_TYPE_I32, !=, i32, i32) - OVM_OP(OVMI_NE, OVM_TYPE_I64, !=, i64, i64) - OVM_OP(OVMI_NE, OVM_TYPE_F32, !=, f32, f32) - OVM_OP(OVMI_NE, OVM_TYPE_F64, !=, f64, f64) -#undef OVM_OP + +// +// Memory / register operations +// #define OVM_IMM(t, dtype, stype) \ - case OVM_TYPED_INSTR(OVMI_IMM, t): \ - VAL(instr.r).type = t; \ - VAL(instr.r).u64 = 0; \ - VAL(instr.r).dtype = instr.stype; \ - break; - - OVM_IMM(OVM_TYPE_I8, u8, i) - OVM_IMM(OVM_TYPE_I16, u16, i) - OVM_IMM(OVM_TYPE_I32, u32, i) - OVM_IMM(OVM_TYPE_I64, u64, l) - OVM_IMM(OVM_TYPE_F32, f32, f) - OVM_IMM(OVM_TYPE_F64, f64, d) + case t: \ + VAL(instr->r).type = t; \ + VAL(instr->r).u64 = 0; \ + VAL(instr->r).dtype = instr->stype; \ + break; + + +OVMI_INSTR_EXEC(ovmi_exec_imm) { + switch (OVM_INSTR_TYPE(*instr)) { + OVM_IMM(OVM_TYPE_I8, u8, i); + OVM_IMM(OVM_TYPE_I16, u16, i); + OVM_IMM(OVM_TYPE_I32, u32, i); + OVM_IMM(OVM_TYPE_I64, u64, l); + OVM_IMM(OVM_TYPE_F32, f32, f); + OVM_IMM(OVM_TYPE_F64, f64, d); + } + NEXT_OP; +} #undef OVM_IMM - case OVMI_MOV: - VAL(instr.r) = VAL(instr.a); - -#ifdef OVM_VERBOSE - printf("$%d = %lx\n", instr.r, VAL(instr.r).u64); -#endif - - break; +OVMI_INSTR_EXEC(ovmi_exec_mov) { + VAL(instr->r) = VAL(instr->a); + NEXT_OP; +} #define OVM_LOAD(type_, stype) \ - case OVM_TYPED_INSTR(OVMI_LOAD, type_): {\ - ovm_assert(VAL(instr.a).type == OVM_TYPE_I32); \ - if ((VAL(instr.a).u32 + (u32) instr.b) == 0) __ovm_trigger_exception(state); \ - tmp_val.type = type_; \ - tmp_val.stype = * (stype *) &((u8 *) engine->memory)[VAL(instr.a).u32 + (u32) instr.b]; \ - VAL(instr.r) = tmp_val; \ - break; \ - } + case type_: {\ + VAL(instr->r).stype = * (stype *) &memory[dest]; \ + VAL(instr->r).type = type_; \ + break; \ + } - OVM_LOAD(OVM_TYPE_I8, u8) - OVM_LOAD(OVM_TYPE_I16, u16) - OVM_LOAD(OVM_TYPE_I32, u32) - OVM_LOAD(OVM_TYPE_I64, u64) - OVM_LOAD(OVM_TYPE_F32, f32) - OVM_LOAD(OVM_TYPE_F64, f64) +OVMI_INSTR_EXEC(ovmi_exec_load) { + ovm_assert(VAL(instr->a).type == OVM_TYPE_I32); + u32 dest = VAL(instr->a).u32 + (u32) instr->b; + if (dest == 0) __ovm_trigger_exception(state); + + switch (OVM_INSTR_TYPE(*instr)) { + OVM_LOAD(OVM_TYPE_I8, u8) + OVM_LOAD(OVM_TYPE_I16, u16) + OVM_LOAD(OVM_TYPE_I32, u32) + OVM_LOAD(OVM_TYPE_I64, u64) + OVM_LOAD(OVM_TYPE_F32, f32) + OVM_LOAD(OVM_TYPE_F64, f64) + } + NEXT_OP; +} #undef OVM_LOAD #define OVM_STORE(type_, stype) \ - case OVM_TYPED_INSTR(OVMI_STORE, type_): \ - ovm_assert(VAL(instr.r).type == OVM_TYPE_I32); \ - if ((VAL(instr.r).u32 + (u32) instr.b) == 0) __ovm_trigger_exception(state); \ - *(stype *) &((u8 *) engine->memory)[VAL(instr.r).u32 + (u32) instr.b] = VAL(instr.a).stype; \ - break; - - OVM_STORE(OVM_TYPE_I8, u8) - OVM_STORE(OVM_TYPE_I16, u16) - OVM_STORE(OVM_TYPE_I32, u32) - OVM_STORE(OVM_TYPE_I64, u64) - OVM_STORE(OVM_TYPE_F32, f32) - OVM_STORE(OVM_TYPE_F64, f64) + case type_: \ + *(stype *) &memory[dest] = VAL(instr->a).stype; \ + break; + + +OVMI_INSTR_EXEC(ovmi_exec_store) { + ovm_assert(VAL(instr->r).type == OVM_TYPE_I32); + u32 dest = VAL(instr->r).u32 + (u32) instr->b; + if (dest == 0) __ovm_trigger_exception(state); + + switch (OVM_INSTR_TYPE(*instr)) { + OVM_STORE(OVM_TYPE_I8, u8) + OVM_STORE(OVM_TYPE_I16, u16) + OVM_STORE(OVM_TYPE_I32, u32) + OVM_STORE(OVM_TYPE_I64, u64) + OVM_STORE(OVM_TYPE_F32, f32) + OVM_STORE(OVM_TYPE_F64, f64) + } + NEXT_OP; +} #undef OVM_STORE - case OVMI_COPY: { - u32 dest = VAL(instr.r).u32; - u32 src = VAL(instr.a).u32; - u32 count = VAL(instr.b).u32; +OVMI_INSTR_EXEC(ovmi_exec_copy) { + u32 dest = VAL(instr->r).u32; + u32 src = VAL(instr->a).u32; + u32 count = VAL(instr->b).u32; - if (!dest || !src) __ovm_trigger_exception(state); + if (!dest || !src) __ovm_trigger_exception(state); - u8 *base = engine->memory; - memmove(&base[dest], &base[src], count); - break; - } + memmove(&memory[dest], &memory[src], count); + + NEXT_OP; +} - case OVMI_FILL: { - i32 dest = VAL(instr.r).i32; - u8 byte = VAL(instr.a).u8; - i32 count = VAL(instr.b).i32; +OVMI_INSTR_EXEC(ovmi_exec_fill) { + i32 dest = VAL(instr->r).i32; + u8 byte = VAL(instr->a).u8; + i32 count = VAL(instr->b).i32; - if (!dest) __ovm_trigger_exception(state); + if (!dest) __ovm_trigger_exception(state); - u8 *base = engine->memory; - memset(&base[dest], byte, count); - break; - } + memset(&memory[dest], byte, count); - case OVMI_REG_GET: { - VAL(instr.r) = state->registers[instr.a]; - break; - } + NEXT_OP; +} - case OVMI_REG_SET: { - state->registers[instr.r] = VAL(instr.a); - break; - } +OVMI_INSTR_EXEC(ovmi_exec_reg_get) { + VAL(instr->r) = state->registers[instr->a]; - case OVMI_IDX_ARR: { - ovm_static_integer_array_t data_elem = program->static_data[instr.a]; - ovm_assert(VAL(instr.b).u32 < (u32) data_elem.len); + NEXT_OP; +} - tmp_val.type = OVM_TYPE_I32; - tmp_val.i32 = program->static_integers[data_elem.start_idx + VAL(instr.b).u32]; - VAL(instr.r) = tmp_val; - break; - } +OVMI_INSTR_EXEC(ovmi_exec_reg_set) { + state->registers[instr->r] = VAL(instr->a); + + NEXT_OP; +} + +OVMI_INSTR_EXEC(ovmi_exec_idx_arr) { + ovm_static_integer_array_t data_elem = state->program->static_data[instr->a]; + ovm_assert(VAL(instr->b).u32 < (u32) data_elem.len); + + VAL(instr->r).i32 = state->program->static_integers[data_elem.start_idx + VAL(instr->b).u32]; + VAL(instr->r).type = OVM_TYPE_I32; - case OVMI_PARAM: - bh_arr_push(state->params, VAL(instr.a)); - break; + NEXT_OP; +} + + +// +// Function calling +// - case OVMI_RETURN: { - ovm_value_t val = VAL(instr.a); - ovm_stack_frame_t frame = ovm__func_teardown_stack_frame(engine, state, program); - state->pc = frame.return_address; +OVMI_INSTR_EXEC(ovmi_exec_param) { + bh_arr_push(state->params, VAL(instr->a)); - if (bh_arr_length(state->stack_frames) == 0) { - return val; - } + NEXT_OP; +} + +OVMI_INSTR_EXEC(ovmi_exec_return) { + ovm_value_t val = VAL(instr->a); + ovm_stack_frame_t frame = ovm__func_teardown_stack_frame(state); + state->pc = frame.return_address; + + if (bh_arr_length(state->stack_frames) == 0) { + return val; + } - ovm_func_t *new_func = bh_arr_last(state->stack_frames).func; - if (new_func->kind == OVM_FUNC_EXTERNAL) { - return val; - } + ovm_func_t *new_func = bh_arr_last(state->stack_frames).func; + if (new_func->kind == OVM_FUNC_EXTERNAL) { + return val; + } - if (frame.return_number_value >= 0) { - VAL(frame.return_number_value) = val; - } + if (frame.return_number_value >= 0) { + VAL(frame.return_number_value) = val; + } #ifdef OVM_VERBOSE - printf("Returning from %s to %s: ", frame.func->name, bh_arr_last(state->stack_frames).func->name); - ovm_print_val(val); - printf("\n\n"); + printf("Returning from %s to %s: ", frame.func->name, bh_arr_last(state->stack_frames).func->name); + ovm_print_val(val); + printf("\n\n"); #endif - break; - } + NEXT_OP; +} + #define OVM_CALL_CODE(func_idx) \ - i32 fidx = func_idx; \ - ovm_func_t *func = &program->funcs[fidx]; \ - i32 extra_params = bh_arr_length(state->params) - func->param_count; \ - ovm_assert(extra_params >= 0); \ - ovm__func_setup_stack_frame(engine, state, program, fidx, instr.r); \ - if (func->kind == OVM_FUNC_INTERNAL) { \ - fori (i, 0, func->param_count) { \ - VAL(i) = state->params[i + extra_params]; \ - } \ - bh_arr_fastdeleten(state->params, func->param_count); \ - \ - state->pc = func->start_instr; \ - } else { \ - ovm_value_t result = {0}; \ - ovm_external_func_t external_func = state->external_funcs[func->external_func_idx]; \ - external_func.native_func(external_func.userdata, &state->params[extra_params], &result); \ - bh_arr_fastdeleten(state->params, func->param_count); \ - \ - ovm__func_teardown_stack_frame(engine, state, program); \ - \ - if (instr.r >= 0) { \ - VAL(instr.r) = result; \ - } \ - } + i32 fidx = func_idx; \ + ovm_func_t *func = &state->program->funcs[fidx]; \ + i32 extra_params = bh_arr_length(state->params) - func->param_count; \ + ovm_assert(extra_params >= 0); \ + ovm__func_setup_stack_frame(state, func, instr->r); \ + if (func->kind == OVM_FUNC_INTERNAL) { \ + fori (i, 0, func->param_count) { \ + VAL(i) = state->params[i + extra_params]; \ + } \ + bh_arr_fastdeleten(state->params, func->param_count); \ +\ + state->pc = func->start_instr; \ + } else { \ + ovm_value_t result = {0}; \ + ovm_external_func_t external_func = state->external_funcs[func->external_func_idx]; \ + external_func.native_func(external_func.userdata, &state->params[extra_params], &result); \ + bh_arr_fastdeleten(state->params, func->param_count); \ +\ + ovm__func_teardown_stack_frame(state); \ +\ + if (instr->r >= 0) { \ + VAL(instr->r) = result; \ + } \ + } - case OVMI_CALL: { - OVM_CALL_CODE(instr.a); - break; - } - case OVMI_CALLI: { - OVM_CALL_CODE(VAL(instr.a).i32); - break; - } +OVMI_INSTR_EXEC(ovmi_exec_call) { + OVM_CALL_CODE(instr->a); + NEXT_OP; +} + +OVMI_INSTR_EXEC(ovmi_exec_calli) { + OVM_CALL_CODE(VAL(instr->a).i32); + NEXT_OP; +} #undef OVM_CALL_CODE - case OVMI_BR: state->pc += instr.a; break; - case OVMI_BRI: state->pc += VAL(instr.a).i32; break; - case OVMI_BR_NZ: if (VAL(instr.b).i32 != 0) state->pc += instr.a; break; - case OVMI_BRI_NZ: if (VAL(instr.b).i32 != 0) state->pc += VAL(instr.a).i32; break; - case OVMI_BR_Z: if (VAL(instr.b).i32 == 0) state->pc += instr.a; break; - case OVMI_BRI_Z: if (VAL(instr.b).i32 == 0) state->pc += VAL(instr.a).i32; break; +// +// Branching Instructions +// + +OVMI_INSTR_EXEC(ovmi_exec_br) { state->pc += instr->a; NEXT_OP; } +OVMI_INSTR_EXEC(ovmi_exec_bri) { state->pc += VAL(instr->a).i32; NEXT_OP; } +OVMI_INSTR_EXEC(ovmi_exec_br_nz) { if (VAL(instr->b).i32 != 0) state->pc += instr->a; NEXT_OP; } +OVMI_INSTR_EXEC(ovmi_exec_bri_nz) { if (VAL(instr->b).i32 != 0) state->pc += VAL(instr->a).i32; NEXT_OP; } +OVMI_INSTR_EXEC(ovmi_exec_br_z) { if (VAL(instr->b).i32 == 0) state->pc += instr->a; NEXT_OP; } +OVMI_INSTR_EXEC(ovmi_exec_bri_z) { if (VAL(instr->b).i32 == 0) state->pc += VAL(instr->a).i32; NEXT_OP; } + + +// +// Conversion (make this better!) +// + +OVMI_INSTR_EXEC(ovmi_exec_cvt) { + ovm_value_t tmp_val; + + switch (instr->full_instr) { + #define CVT(stype, dtype, otype, ctype) \ + tmp_val.dtype = (ctype) VAL(instr->a).stype; \ tmp_val.type = otype; \ - tmp_val.dtype = (ctype) VAL(instr.a).stype; \ - VAL(instr.r) = tmp_val; \ + VAL(instr->r) = tmp_val; \ break - case OVM_TYPED_INSTR(OVMI_CVT_I8, OVM_TYPE_I16): CVT(u8, u16, OVM_TYPE_I16, u16); - case OVM_TYPED_INSTR(OVMI_CVT_I8, OVM_TYPE_I32): CVT(u8, u32, OVM_TYPE_I32, u32); - case OVM_TYPED_INSTR(OVMI_CVT_I8, OVM_TYPE_I64): CVT(u8, u64, OVM_TYPE_I64, u64); - case OVM_TYPED_INSTR(OVMI_CVT_I8_S, OVM_TYPE_I16): CVT(i8, i16, OVM_TYPE_I16, i16); - case OVM_TYPED_INSTR(OVMI_CVT_I8_S, OVM_TYPE_I32): CVT(i8, i32, OVM_TYPE_I32, i32); - case OVM_TYPED_INSTR(OVMI_CVT_I8_S, OVM_TYPE_I64): CVT(i8, i64, OVM_TYPE_I64, i64); - - case OVM_TYPED_INSTR(OVMI_CVT_I16, OVM_TYPE_I8): CVT(u16, u8, OVM_TYPE_I8, u8); - case OVM_TYPED_INSTR(OVMI_CVT_I16, OVM_TYPE_I32): CVT(u16, u32, OVM_TYPE_I32, u32); - case OVM_TYPED_INSTR(OVMI_CVT_I16, OVM_TYPE_I64): CVT(u16, u64, OVM_TYPE_I64, u64); - case OVM_TYPED_INSTR(OVMI_CVT_I16_S, OVM_TYPE_I8): CVT(i16, i8, OVM_TYPE_I8, i8); - case OVM_TYPED_INSTR(OVMI_CVT_I16_S, OVM_TYPE_I32): CVT(i16, i32, OVM_TYPE_I32, i32); - case OVM_TYPED_INSTR(OVMI_CVT_I16_S, OVM_TYPE_I64): CVT(i16, i64, OVM_TYPE_I64, i64); - - case OVM_TYPED_INSTR(OVMI_CVT_I32, OVM_TYPE_I8): CVT(u32, u8, OVM_TYPE_I8, u8); - case OVM_TYPED_INSTR(OVMI_CVT_I32, OVM_TYPE_I16): CVT(u32, u16, OVM_TYPE_I16, u16); - case OVM_TYPED_INSTR(OVMI_CVT_I32, OVM_TYPE_I64): CVT(u32, u64, OVM_TYPE_I64, u64); - case OVM_TYPED_INSTR(OVMI_CVT_I32_S, OVM_TYPE_I8): CVT(i32, i8, OVM_TYPE_I8, i8); - case OVM_TYPED_INSTR(OVMI_CVT_I32_S, OVM_TYPE_I16): CVT(i32, i16, OVM_TYPE_I16, i16); - case OVM_TYPED_INSTR(OVMI_CVT_I32_S, OVM_TYPE_I64): CVT(i32, i64, OVM_TYPE_I64, i64); - - case OVM_TYPED_INSTR(OVMI_CVT_I32, OVM_TYPE_F32): CVT(u32, f32, OVM_TYPE_F32, f32); - case OVM_TYPED_INSTR(OVMI_CVT_I32_S, OVM_TYPE_F32): CVT(i32, f32, OVM_TYPE_F32, f32); - case OVM_TYPED_INSTR(OVMI_CVT_I32, OVM_TYPE_F64): CVT(u32, f64, OVM_TYPE_F64, f64); - case OVM_TYPED_INSTR(OVMI_CVT_I32_S, OVM_TYPE_F64): CVT(i32, f64, OVM_TYPE_F64, f64); - - case OVM_TYPED_INSTR(OVMI_CVT_I64, OVM_TYPE_I8): CVT(u64, u8, OVM_TYPE_I8, u8); - case OVM_TYPED_INSTR(OVMI_CVT_I64, OVM_TYPE_I16): CVT(u64, u16, OVM_TYPE_I16, u16); - case OVM_TYPED_INSTR(OVMI_CVT_I64, OVM_TYPE_I32): CVT(u64, u32, OVM_TYPE_I32, u32); - case OVM_TYPED_INSTR(OVMI_CVT_I64_S, OVM_TYPE_I8): CVT(i64, i8, OVM_TYPE_I8, i8); - case OVM_TYPED_INSTR(OVMI_CVT_I64_S, OVM_TYPE_I16): CVT(i64, i16, OVM_TYPE_I16, i16); - case OVM_TYPED_INSTR(OVMI_CVT_I64_S, OVM_TYPE_I32): CVT(i64, i32, OVM_TYPE_I32, i32); - - case OVM_TYPED_INSTR(OVMI_CVT_I64, OVM_TYPE_F32): CVT(u64, f32, OVM_TYPE_F32, f32); - case OVM_TYPED_INSTR(OVMI_CVT_I64_S, OVM_TYPE_F32): CVT(i64, f32, OVM_TYPE_F32, f32); - case OVM_TYPED_INSTR(OVMI_CVT_I64, OVM_TYPE_F64): CVT(u64, f64, OVM_TYPE_F64, f64); - case OVM_TYPED_INSTR(OVMI_CVT_I64_S, OVM_TYPE_F64): CVT(i64, f64, OVM_TYPE_F64, f64); - - case OVM_TYPED_INSTR(OVMI_CVT_F32, OVM_TYPE_I32): CVT(f32, u32, OVM_TYPE_I32, u32); - case OVM_TYPED_INSTR(OVMI_CVT_F32, OVM_TYPE_I64): CVT(f32, u64, OVM_TYPE_I64, u64); - case OVM_TYPED_INSTR(OVMI_CVT_F32, OVM_TYPE_F64): CVT(f32, f64, OVM_TYPE_F64, f64); - case OVM_TYPED_INSTR(OVMI_CVT_F32_S, OVM_TYPE_I32): CVT(f32, i32, OVM_TYPE_I32, i32); - case OVM_TYPED_INSTR(OVMI_CVT_F32_S, OVM_TYPE_I64): CVT(f32, i64, OVM_TYPE_I64, i64); - case OVM_TYPED_INSTR(OVMI_CVT_F32_S, OVM_TYPE_F64): CVT(f32, f64, OVM_TYPE_F64, f64); - - case OVM_TYPED_INSTR(OVMI_CVT_F64, OVM_TYPE_I32): CVT(f64, u32, OVM_TYPE_I32, u32); - case OVM_TYPED_INSTR(OVMI_CVT_F64, OVM_TYPE_I64): CVT(f64, u64, OVM_TYPE_I64, u64); - case OVM_TYPED_INSTR(OVMI_CVT_F64, OVM_TYPE_F32): CVT(f64, f32, OVM_TYPE_F32, f32); - case OVM_TYPED_INSTR(OVMI_CVT_F64_S, OVM_TYPE_I32): CVT(f64, i32, OVM_TYPE_I32, i32); - case OVM_TYPED_INSTR(OVMI_CVT_F64_S, OVM_TYPE_I64): CVT(f64, i64, OVM_TYPE_I64, i64); - case OVM_TYPED_INSTR(OVMI_CVT_F64_S, OVM_TYPE_F32): CVT(f64, f32, OVM_TYPE_F32, f32); + case OVM_TYPED_INSTR(OVMI_CVT_I8, OVM_TYPE_I16): CVT(u8, u16, OVM_TYPE_I16, u16); + case OVM_TYPED_INSTR(OVMI_CVT_I8, OVM_TYPE_I32): CVT(u8, u32, OVM_TYPE_I32, u32); + case OVM_TYPED_INSTR(OVMI_CVT_I8, OVM_TYPE_I64): CVT(u8, u64, OVM_TYPE_I64, u64); + case OVM_TYPED_INSTR(OVMI_CVT_I8_S, OVM_TYPE_I16): CVT(i8, i16, OVM_TYPE_I16, i16); + case OVM_TYPED_INSTR(OVMI_CVT_I8_S, OVM_TYPE_I32): CVT(i8, i32, OVM_TYPE_I32, i32); + case OVM_TYPED_INSTR(OVMI_CVT_I8_S, OVM_TYPE_I64): CVT(i8, i64, OVM_TYPE_I64, i64); + + case OVM_TYPED_INSTR(OVMI_CVT_I16, OVM_TYPE_I8): CVT(u16, u8, OVM_TYPE_I8, u8); + case OVM_TYPED_INSTR(OVMI_CVT_I16, OVM_TYPE_I32): CVT(u16, u32, OVM_TYPE_I32, u32); + case OVM_TYPED_INSTR(OVMI_CVT_I16, OVM_TYPE_I64): CVT(u16, u64, OVM_TYPE_I64, u64); + case OVM_TYPED_INSTR(OVMI_CVT_I16_S, OVM_TYPE_I8): CVT(i16, i8, OVM_TYPE_I8, i8); + case OVM_TYPED_INSTR(OVMI_CVT_I16_S, OVM_TYPE_I32): CVT(i16, i32, OVM_TYPE_I32, i32); + case OVM_TYPED_INSTR(OVMI_CVT_I16_S, OVM_TYPE_I64): CVT(i16, i64, OVM_TYPE_I64, i64); + + case OVM_TYPED_INSTR(OVMI_CVT_I32, OVM_TYPE_I8): CVT(u32, u8, OVM_TYPE_I8, u8); + case OVM_TYPED_INSTR(OVMI_CVT_I32, OVM_TYPE_I16): CVT(u32, u16, OVM_TYPE_I16, u16); + case OVM_TYPED_INSTR(OVMI_CVT_I32, OVM_TYPE_I64): CVT(u32, u64, OVM_TYPE_I64, u64); + case OVM_TYPED_INSTR(OVMI_CVT_I32_S, OVM_TYPE_I8): CVT(i32, i8, OVM_TYPE_I8, i8); + case OVM_TYPED_INSTR(OVMI_CVT_I32_S, OVM_TYPE_I16): CVT(i32, i16, OVM_TYPE_I16, i16); + case OVM_TYPED_INSTR(OVMI_CVT_I32_S, OVM_TYPE_I64): CVT(i32, i64, OVM_TYPE_I64, i64); + + case OVM_TYPED_INSTR(OVMI_CVT_I32, OVM_TYPE_F32): CVT(u32, f32, OVM_TYPE_F32, f32); + case OVM_TYPED_INSTR(OVMI_CVT_I32_S, OVM_TYPE_F32): CVT(i32, f32, OVM_TYPE_F32, f32); + case OVM_TYPED_INSTR(OVMI_CVT_I32, OVM_TYPE_F64): CVT(u32, f64, OVM_TYPE_F64, f64); + case OVM_TYPED_INSTR(OVMI_CVT_I32_S, OVM_TYPE_F64): CVT(i32, f64, OVM_TYPE_F64, f64); + + case OVM_TYPED_INSTR(OVMI_CVT_I64, OVM_TYPE_I8): CVT(u64, u8, OVM_TYPE_I8, u8); + case OVM_TYPED_INSTR(OVMI_CVT_I64, OVM_TYPE_I16): CVT(u64, u16, OVM_TYPE_I16, u16); + case OVM_TYPED_INSTR(OVMI_CVT_I64, OVM_TYPE_I32): CVT(u64, u32, OVM_TYPE_I32, u32); + case OVM_TYPED_INSTR(OVMI_CVT_I64_S, OVM_TYPE_I8): CVT(i64, i8, OVM_TYPE_I8, i8); + case OVM_TYPED_INSTR(OVMI_CVT_I64_S, OVM_TYPE_I16): CVT(i64, i16, OVM_TYPE_I16, i16); + case OVM_TYPED_INSTR(OVMI_CVT_I64_S, OVM_TYPE_I32): CVT(i64, i32, OVM_TYPE_I32, i32); + + case OVM_TYPED_INSTR(OVMI_CVT_I64, OVM_TYPE_F32): CVT(u64, f32, OVM_TYPE_F32, f32); + case OVM_TYPED_INSTR(OVMI_CVT_I64_S, OVM_TYPE_F32): CVT(i64, f32, OVM_TYPE_F32, f32); + case OVM_TYPED_INSTR(OVMI_CVT_I64, OVM_TYPE_F64): CVT(u64, f64, OVM_TYPE_F64, f64); + case OVM_TYPED_INSTR(OVMI_CVT_I64_S, OVM_TYPE_F64): CVT(i64, f64, OVM_TYPE_F64, f64); + + case OVM_TYPED_INSTR(OVMI_CVT_F32, OVM_TYPE_I32): CVT(f32, u32, OVM_TYPE_I32, u32); + case OVM_TYPED_INSTR(OVMI_CVT_F32, OVM_TYPE_I64): CVT(f32, u64, OVM_TYPE_I64, u64); + case OVM_TYPED_INSTR(OVMI_CVT_F32, OVM_TYPE_F64): CVT(f32, f64, OVM_TYPE_F64, f64); + case OVM_TYPED_INSTR(OVMI_CVT_F32_S, OVM_TYPE_I32): CVT(f32, i32, OVM_TYPE_I32, i32); + case OVM_TYPED_INSTR(OVMI_CVT_F32_S, OVM_TYPE_I64): CVT(f32, i64, OVM_TYPE_I64, i64); + case OVM_TYPED_INSTR(OVMI_CVT_F32_S, OVM_TYPE_F64): CVT(f32, f64, OVM_TYPE_F64, f64); + + case OVM_TYPED_INSTR(OVMI_CVT_F64, OVM_TYPE_I32): CVT(f64, u32, OVM_TYPE_I32, u32); + case OVM_TYPED_INSTR(OVMI_CVT_F64, OVM_TYPE_I64): CVT(f64, u64, OVM_TYPE_I64, u64); + case OVM_TYPED_INSTR(OVMI_CVT_F64, OVM_TYPE_F32): CVT(f64, f32, OVM_TYPE_F32, f32); + case OVM_TYPED_INSTR(OVMI_CVT_F64_S, OVM_TYPE_I32): CVT(f64, i32, OVM_TYPE_I32, i32); + case OVM_TYPED_INSTR(OVMI_CVT_F64_S, OVM_TYPE_I64): CVT(f64, i64, OVM_TYPE_I64, i64); + case OVM_TYPED_INSTR(OVMI_CVT_F64_S, OVM_TYPE_F32): CVT(f64, f32, OVM_TYPE_F32, f32); #undef CVT #define CVT(stype, dtype, otype, ctype) \ tmp_val.type = otype; \ - tmp_val.dtype = *(ctype *) &VAL(instr.a).stype; \ - VAL(instr.r) = tmp_val; \ + tmp_val.dtype = *(ctype *) &VAL(instr->a).stype; \ + VAL(instr->r) = tmp_val; \ break case OVM_TYPED_INSTR(OVMI_TRANSMUTE_I32, OVM_TYPE_F32): CVT(u32, f32, OVM_TYPE_F32, f32); @@ -1246,53 +1248,261 @@ ovm_value_t ovm_run_code(ovm_engine_t *engine, ovm_state_t *state, ovm_program_t case OVM_TYPED_INSTR(OVMI_TRANSMUTE_F64, OVM_TYPE_I64): CVT(f64, u64, OVM_TYPE_I64, u64); #undef CVT + } + + NEXT_OP; +} +// +// Compare exchange +// + #define CMPXCHG(otype, ctype) \ - case OVM_TYPED_INSTR(OVMI_CMPXCHG, otype): {\ - if (VAL(instr.r).u32 == 0) __ovm_trigger_exception(state); \ - ctype *addr = (ctype *) &((u8 *) engine->memory)[VAL(instr.r).u32]; \ + case otype: {\ + if (VAL(instr->r).u32 == 0) __ovm_trigger_exception(state); \ + ctype *addr = (ctype *) &memory[VAL(instr->r).u32]; \ \ - VAL(instr.r).u64 = 0; \ - VAL(instr.r).type = otype; \ - VAL(instr.r).ctype = *addr; \ + VAL(instr->r).u64 = 0; \ + VAL(instr->r).type = otype; \ + VAL(instr->r).ctype = *addr; \ \ - if (*addr == VAL(instr.a).ctype) { \ - *addr = VAL(instr.b).ctype ; \ + if (*addr == VAL(instr->a).ctype) { \ + *addr = VAL(instr->b).ctype ; \ } \ break; \ } - CMPXCHG(OVM_TYPE_I8, i8) - CMPXCHG(OVM_TYPE_I16, i16) - CMPXCHG(OVM_TYPE_I32, i32) - CMPXCHG(OVM_TYPE_I64, i64) +OVMI_INSTR_EXEC(ovmi_exec_cmpxchg) { + switch (OVM_INSTR_TYPE(*instr)) { + CMPXCHG(OVM_TYPE_I8, i8) + CMPXCHG(OVM_TYPE_I16, i16) + CMPXCHG(OVM_TYPE_I32, i32) + CMPXCHG(OVM_TYPE_I64, i64) + } + + NEXT_OP; +} #undef CMPXCHG - case OVMI_BREAK: - __ovm_trigger_exception(state); - printf("onyx: exiting early due to reaching an unreachable instruction.\n"); - - return ((ovm_value_t) {0}); - - default: - printf("ERROR:\n"); - ovm_program_print_instructions(program, state->pc - 1, 1); - fflush(stdout); - ovm_assert(("ILLEGAL INSTRUCTION", 0)); - break; - } - - if (release_mutex_at_end) { - pthread_mutex_unlock(&engine->atomic_mutex); - release_mutex_at_end = false; - } - } +OVMI_INSTR_EXEC(ovmi_exec_illegal) { + __ovm_trigger_exception(state); return ((ovm_value_t) {0}); } +// +// Dispatch table +// + +static ovmi_instr_exec_t ovmi_dispatch[256] = { + // 0x00 + ovmi_exec_nop, + ovmi_exec_add, + ovmi_exec_sub, + ovmi_exec_mul, + ovmi_exec_div, + ovmi_exec_div_s, + ovmi_exec_rem, + ovmi_exec_rem_s, + ovmi_exec_and, + ovmi_exec_or, + ovmi_exec_xor, + ovmi_exec_shl, + ovmi_exec_shr, + ovmi_exec_sar, + ovmi_exec_illegal, + ovmi_exec_illegal, + + // 0x10 + ovmi_exec_imm, + ovmi_exec_mov, + ovmi_exec_load, + ovmi_exec_store, + ovmi_exec_copy, + ovmi_exec_fill, + ovmi_exec_reg_get, + ovmi_exec_reg_set, + ovmi_exec_idx_arr, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + + // 0x20 + ovmi_exec_lt, + ovmi_exec_lt_s, + ovmi_exec_le, + ovmi_exec_le_s, + ovmi_exec_eq, + ovmi_exec_ge, + ovmi_exec_ge_s, + ovmi_exec_gt, + ovmi_exec_gt_s, + ovmi_exec_ne, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + + // 0x30 + ovmi_exec_param, + ovmi_exec_return, + ovmi_exec_call, + ovmi_exec_calli, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + + // 0x40 + ovmi_exec_br, + ovmi_exec_br_z, + ovmi_exec_br_nz, + ovmi_exec_bri, + ovmi_exec_bri_z, + ovmi_exec_bri_nz, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + + // 0x50 + ovmi_exec_clz, + ovmi_exec_ctz, + ovmi_exec_popcount, + ovmi_exec_rotl, + ovmi_exec_rotr, + ovmi_exec_abs, + ovmi_exec_neg, + ovmi_exec_ceil, + ovmi_exec_floor, + ovmi_exec_trunc, + ovmi_exec_nearest, + ovmi_exec_sqrt, + ovmi_exec_min, + ovmi_exec_max, + ovmi_exec_copysign, + ovmi_exec_illegal, + + // 0x60 + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + ovmi_exec_cvt, + + // 0x70 + ovmi_exec_cmpxchg, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + ovmi_exec_illegal, + + // 0x80 + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + + // 0x90 + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + + // 0xA0 + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + + // 0xB0 + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + + // 0xC0 + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + + // 0xD0 + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + + // 0xE0 + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + + // 0xF0 + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, + ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, ovmi_exec_illegal, +}; + + +ovm_value_t ovm_run_code(ovm_engine_t *engine, ovm_state_t *state, ovm_program_t *program) { + ovm_assert(engine); + ovm_assert(state); + ovm_assert(program); + + ovm_instr_t *code = program->code; + u8 *memory = engine->memory; + + ovm_instr_t *instr = &code[state->pc]; + NEXT_OP; +} + void ovm_print_stack_trace(ovm_engine_t *engine, ovm_state_t *state, ovm_program_t *program) { int i = 0; diff --git a/shared/lib/linux_x86_64/lib/libovmwasm.so b/shared/lib/linux_x86_64/lib/libovmwasm.so index 82cf2d25ae7500c21e484b92346fba063e657156..d21e744dba52aaa704687139e9df8c5855a64881 100755 GIT binary patch literal 291856 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%0ABSg#WH?6dzM65~D4 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

AJ+YIH?F=>`Izs1|NY8)Pgw`9 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 E1I{J{*8l(j literal 256608 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 -- 2.25.1