aboutsummaryrefslogtreecommitdiff
path: root/src/arch/wasm/CodeGen.zig
diff options
context:
space:
mode:
authorLuuk de Gram <luuk@degram.dev>2023-10-08 15:18:40 +0200
committerLuuk de Gram <luuk@degram.dev>2023-10-08 15:18:40 +0200
commit8e836cb59a63449bc4d3e82df4e35f947ceace39 (patch)
treed798c81f001047a5e2ee7fd2c7e32a07dc1e4d34 /src/arch/wasm/CodeGen.zig
parenta9b37ac63724a79805f00b4e6966ebb8329151a2 (diff)
downloadzig-8e836cb59a63449bc4d3e82df4e35f947ceace39.tar.gz
zig-8e836cb59a63449bc4d3e82df4e35f947ceace39.zip
wasm: correctly lower signed value in `@tagName`
Diffstat (limited to 'src/arch/wasm/CodeGen.zig')
-rw-r--r--src/arch/wasm/CodeGen.zig4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/arch/wasm/CodeGen.zig b/src/arch/wasm/CodeGen.zig
index 49754f03f6..922fc4db07 100644
--- 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,