commit 8e836cb59a63449bc4d3e82df4e35f947ceace39 (tree)
parent a9b37ac63724a79805f00b4e6966ebb8329151a2
Author: Luuk de Gram <luuk@degram.dev>
Date: Sun, 8 Oct 2023 15:18:40 +0200
wasm: correctly lower signed value in `@tagName`
Diffstat:
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/arch/wasm/CodeGen.zig b/src/arch/wasm/CodeGen.zig
@@ -7215,12 +7215,12 @@ fn getTagNameFunction(func: *CodeGen, enum_ty: Type) InnerError!u32 {
switch (tag_value) {
.imm32 => |value| {
try writer.writeByte(std.wasm.opcode(.i32_const));
- try leb.writeULEB128(writer, value);
+ try leb.writeILEB128(writer, @as(i32, @bitCast(value)));
try writer.writeByte(std.wasm.opcode(.i32_ne));
},
.imm64 => |value| {
try writer.writeByte(std.wasm.opcode(.i64_const));
- try leb.writeULEB128(writer, value);
+ try leb.writeILEB128(writer, @as(i64, @bitCast(value)));
try writer.writeByte(std.wasm.opcode(.i64_ne));
},
else => unreachable,