From f7a40a885f41616c85c9d42aa1e44bce8e31d591 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 7 Jul 2022 18:28:31 -0500 Subject: [PATCH] all games run! --- build.sh | 24 +++++++++---------- src/vm/vm.c | 4 ++-- src/wasm/module.c | 2 +- ...module_parsing.c.incl => module_parsing.h} | 0 4 files changed, 15 insertions(+), 15 deletions(-) rename src/wasm/{module_parsing.c.incl => module_parsing.h} (100%) diff --git a/build.sh b/build.sh index 97d881a..ad33538 100755 --- a/build.sh +++ b/build.sh @@ -12,18 +12,18 @@ C_FILES="src/wasm.c src/vm/*.c src/wasm/*.c" $CC $FLAGS $INCLUDES -shared -fPIC -o $TARGET $C_FILES $LIBS $WARNINGS -C_FILES="src/ovm_cli_test.c" -TARGET=bin/ovm_cli_test -LIBS="-L$(pwd) -lonyx_embedder -pthread -lm -Wl,-rpath=./" - -$CC $FLAGS $INCLUDES -o $TARGET $C_FILES $LIBS $WARNINGS - - -C_FILES="src/wasm_cli_test.c" -TARGET=bin/wasm_cli_test -LIBS="-L$(pwd) -lonyx_embedder -lm -Wl,-rpath=./" - -$CC $FLAGS $INCLUDES -o $TARGET $C_FILES $LIBS $WARNINGS +# C_FILES="src/ovm_cli_test.c" +# TARGET=bin/ovm_cli_test +# LIBS="-L$(pwd) -lonyx_embedder -pthread -lm -Wl,-rpath=./" +# +# $CC $FLAGS $INCLUDES -o $TARGET $C_FILES $LIBS $WARNINGS +# +# +# C_FILES="src/wasm_cli_test.c" +# TARGET=bin/wasm_cli_test +# LIBS="-L$(pwd) -lonyx_embedder -lm -Wl,-rpath=./" +# +# $CC $FLAGS $INCLUDES -o $TARGET $C_FILES $LIBS $WARNINGS flex -o src/tools/lex.yy.c src/tools/asm.l diff --git a/src/vm/vm.c b/src/vm/vm.c index 12dab85..03bf165 100644 --- a/src/vm/vm.c +++ b/src/vm/vm.c @@ -952,7 +952,7 @@ ovm_value_t ovm_run_code(ovm_engine_t *engine, ovm_state_t *state, ovm_program_t #define OVM_STORE(type_, stype) \ case OVM_TYPED_INSTR(OVMI_STORE, type_): \ assert(VAL(instr.r).type == OVM_TYPE_I32); \ - memcpy(&((u8 *) engine->memory)[VAL(instr.r).u32 + (u32) instr.b], &VAL(instr.a).stype, sizeof(stype)); \ + *(stype *) &((u8 *) engine->memory)[VAL(instr.r).u32 + (u32) instr.b] = VAL(instr.a).stype; \ break; OVM_STORE(OVM_TYPE_I8, i8) @@ -1011,6 +1011,7 @@ ovm_value_t ovm_run_code(ovm_engine_t *engine, ovm_state_t *state, ovm_program_t 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; if (bh_arr_length(state->stack_frames) == 0) { return val; @@ -1031,7 +1032,6 @@ ovm_value_t ovm_run_code(ovm_engine_t *engine, ovm_state_t *state, ovm_program_t printf("\n\n"); #endif - state->pc = frame.return_address; break; } diff --git a/src/wasm/module.c b/src/wasm/module.c index 07feb45..f68e87c 100644 --- a/src/wasm/module.c +++ b/src/wasm/module.c @@ -3,7 +3,7 @@ #include "onyx_wasm.h" #include "vm_codebuilder.h" -#include "./module_parsing.c.incl" +#include "./module_parsing.h" static bool module_build(wasm_module_t *module, const wasm_byte_vec_t *binary) { wasm_engine_t *engine = module->store->engine; diff --git a/src/wasm/module_parsing.c.incl b/src/wasm/module_parsing.h similarity index 100% rename from src/wasm/module_parsing.c.incl rename to src/wasm/module_parsing.h -- 2.25.1