From 08d2108a2187f2015e71d8aa821b898044047672 Mon Sep 17 00:00:00 2001 From: Rerumu Date: Thu, 26 May 2022 21:00:29 -0400 Subject: [PATCH] Fix bit localizing --- codegen-luajit/src/translator.rs | 6 +++++- codegen-luau/src/translator.rs | 6 ++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/codegen-luajit/src/translator.rs b/codegen-luajit/src/translator.rs index 0873b0f..9ade6be 100644 --- a/codegen-luajit/src/translator.rs +++ b/codegen-luajit/src/translator.rs @@ -232,9 +232,13 @@ fn build_func_list(wasm: &Module, type_info: &TypeInfo) -> Vec { fn write_local_operation(head: &str, tail: &str, w: &mut dyn Write) -> Result<()> { match (head, tail) { - ("abs" | "ceil" | "floor" | "sqrt" | "min" | "max", _) | ("band" | "bor" | "bxor", _) => { + ("band" | "bor" | "bxor", _) => { + write!(w, "local {head}_{tail} = bit.{head} ") + } + ("abs" | "ceil" | "floor" | "sqrt" | "min" | "max", _) => { write!(w, "local {head}_{tail} = math.{head} ") } + _ => write!(w, "local {head}_{tail} = rt.{head}.{tail} "), } } diff --git a/codegen-luau/src/translator.rs b/codegen-luau/src/translator.rs index 3caa379..bcba775 100644 --- a/codegen-luau/src/translator.rs +++ b/codegen-luau/src/translator.rs @@ -231,8 +231,10 @@ fn build_func_list(wasm: &Module, type_info: &TypeInfo) -> Vec { fn write_local_operation(head: &str, tail: &str, w: &mut dyn Write) -> Result<()> { match (head, tail) { - ("abs" | "ceil" | "floor" | "sqrt" | "min" | "max", _) - | ("band" | "bor" | "bxor", "i32") => { + ("band" | "bor" | "bxor", "i32") => { + write!(w, "local {head}_{tail} = bit32.{head} ") + } + ("abs" | "ceil" | "floor" | "sqrt" | "min" | "max", _) => { write!(w, "local {head}_{tail} = math.{head} ") } _ => write!(w, "local {head}_{tail} = rt.{head}.{tail} "),