From 526c95b2ea9f769c95c64904af7eec08c620f532 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 26 Sep 2022 14:19:22 -0500 Subject: [PATCH] bugfix with clz not being correct for u64 --- compiler/src/checker.c | 4 ++++ interpreter/src/vm/vm.c | 6 +++--- shared/lib/linux_x86_64/lib/libovmwasm.so | Bin 235288 -> 235288 bytes 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/compiler/src/checker.c b/compiler/src/checker.c index 80014d8b..b81cbbe9 100644 --- a/compiler/src/checker.c +++ b/compiler/src/checker.c @@ -248,6 +248,10 @@ CheckStatus check_for(AstFor* fornode) { error_loc = fornode->token->pos; } + // @HACK This should be built elsewhere... + builtin_range_type_type = type_build_from_ast(context.ast_alloc, builtin_range_type); + if (builtin_range_type_type == NULL) YIELD(fornode->token->pos, "Waiting for 'range' structure to be built."); + fornode->loop_type = For_Loop_Invalid; if (types_are_compatible(iter_type, &basic_types[Basic_Kind_I32])) { if (fornode->by_pointer) { diff --git a/interpreter/src/vm/vm.c b/interpreter/src/vm/vm.c index 551c6caa..3a85c538 100644 --- a/interpreter/src/vm/vm.c +++ b/interpreter/src/vm/vm.c @@ -865,17 +865,17 @@ ovm_value_t ovm_run_code(ovm_engine_t *engine, ovm_state_t *state, ovm_program_t 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_clz, u64) + 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_ctz, u64) + 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_popcount, u64) + 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); diff --git a/shared/lib/linux_x86_64/lib/libovmwasm.so b/shared/lib/linux_x86_64/lib/libovmwasm.so index 9779da0dd8a3fc5bea34bb81f6d24b8b580aa11b..bb90f89b5692c7b6157ae1f5a4033bd68fad1106 100755 GIT binary patch delta 4203 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 Wuvk1APhXjD$-+m~-s3tcbN&nEluc;> delta 4093 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