From 5037ab1ff83b40c3d61a8466d3091ad8284a2063 Mon Sep 17 00:00:00 2001 From: Rerumu Date: Thu, 16 Jun 2022 01:20:30 -0400 Subject: [PATCH] Fix `i32` multiplication --- codegen-luajit/runtime/runtime.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/codegen-luajit/runtime/runtime.lua b/codegen-luajit/runtime/runtime.lua index 078bb33..2f8d840 100644 --- a/codegen-luajit/runtime/runtime.lua +++ b/codegen-luajit/runtime/runtime.lua @@ -31,6 +31,7 @@ do local to_signed = bit.tobit local math_abs = math.abs + local ID_ONE = i64(1) local RE_INSTANCE = ffi.new([[union { double f64; struct { int32_t a32, b32; }; @@ -53,7 +54,7 @@ do end function mul.i32(a, b) - return (to_signed(a * b)) + return (to_signed(ID_ONE * a * b)) end function div.i32(lhs, rhs)