authorgravatar for paul.verigo@gmail.comPavel Verigo <paul.verigo@gmail.com> 2026-07-25 16:30:29+02:00
committergravatar for paul.verigo@gmail.comPavel Verigo <paul.verigo@gmail.com> 2026-07-25 16:30:29+02:00
logff10b90bc50e1e2792bac513a4ba76f7696b4dca
tree5ac0ff4eb129685c4d137da5a572b024207a6e95
parent783ad796565947e07430d0c73ab279020e5d9e74

stage2-wasm: fix sleb/uleb confusion in emit


2 files changed, 3 insertions(+), 4 deletions(-)

src/codegen/wasm/Emit.zig+2-2
......@@ -978,7 +978,7 @@ fn uavRefExe(wasm: *Wasm, code: *ArrayList(u8), value: InternPool.Index, offset:
978978 code.appendAssumeCapacity(@backingInt(opcode));
979979
980980 const addr = wasm.uavAddr(value);
981 writeUleb128(code, @as(u32, @intCast(@as(i64, addr) + offset)));
981 writeSleb128(code, @as(u32, @intCast(@as(i64, addr) + offset)));
982982}
983983
984984fn navRefOff(wasm: *Wasm, code: *ArrayList(u8), data: Mir.NavRefOff, is_wasm32: bool) !void {
......@@ -1004,7 +1004,7 @@ fn navRefOff(wasm: *Wasm, code: *ArrayList(u8), data: Mir.NavRefOff, is_wasm32:
10041004 code.appendNTimesAssumeCapacity(0, if (is_wasm32) 5 else 10);
10051005 } else {
10061006 const addr = wasm.navAddr(data.nav_index);
1007 writeUleb128(code, @as(u32, @intCast(@as(i64, addr) + data.offset)));
1007 writeSleb128(code, @as(u32, @intCast(@as(i64, addr) + data.offset)));
10081008 }
10091009}
10101010
src/link/Wasm/Flush.zig+1-2
......@@ -2032,8 +2032,7 @@ fn appendGlobal(gpa: Allocator, bytes: *ArrayList(u8), mutable: u8, val: u32) Al
20322032 try bytes.ensureUnusedCapacity(gpa, 9);
20332033 bytes.appendAssumeCapacity(@backingInt(std.wasm.Valtype.i32));
20342034 bytes.appendAssumeCapacity(mutable);
2035 bytes.appendAssumeCapacity(@backingInt(std.wasm.Opcode.i32_const));
2036 appendReservedUleb32(bytes, val);
2035 appendReservedI32Const(bytes, val);
20372036 bytes.appendAssumeCapacity(@backingInt(std.wasm.Opcode.end));
20382037}
20392038