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:...@@ -978,7 +978,7 @@ fn uavRefExe(wasm: *Wasm, code: *ArrayList(u8), value: InternPool.Index, offset:
978 code.appendAssumeCapacity(@backingInt(opcode));978 code.appendAssumeCapacity(@backingInt(opcode));
979979
980 const addr = wasm.uavAddr(value);980 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)));
982}982}
983983
984fn navRefOff(wasm: *Wasm, code: *ArrayList(u8), data: Mir.NavRefOff, is_wasm32: bool) !void {984fn 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:...@@ -1004,7 +1004,7 @@ fn navRefOff(wasm: *Wasm, code: *ArrayList(u8), data: Mir.NavRefOff, is_wasm32:
1004 code.appendNTimesAssumeCapacity(0, if (is_wasm32) 5 else 10);1004 code.appendNTimesAssumeCapacity(0, if (is_wasm32) 5 else 10);
1005 } else {1005 } else {
1006 const addr = wasm.navAddr(data.nav_index);1006 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)));
1008 }1008 }
1009}1009}
10101010
src/link/Wasm/Flush.zig+1-2
...@@ -2032,8 +2032,7 @@ fn appendGlobal(gpa: Allocator, bytes: *ArrayList(u8), mutable: u8, val: u32) Al...@@ -2032,8 +2032,7 @@ fn appendGlobal(gpa: Allocator, bytes: *ArrayList(u8), mutable: u8, val: u32) Al
2032 try bytes.ensureUnusedCapacity(gpa, 9);2032 try bytes.ensureUnusedCapacity(gpa, 9);
2033 bytes.appendAssumeCapacity(@backingInt(std.wasm.Valtype.i32));2033 bytes.appendAssumeCapacity(@backingInt(std.wasm.Valtype.i32));
2034 bytes.appendAssumeCapacity(mutable);2034 bytes.appendAssumeCapacity(mutable);
2035 bytes.appendAssumeCapacity(@backingInt(std.wasm.Opcode.i32_const));2035 appendReservedI32Const(bytes, val);
2036 appendReservedUleb32(bytes, val);
2037 bytes.appendAssumeCapacity(@backingInt(std.wasm.Opcode.end));2036 bytes.appendAssumeCapacity(@backingInt(std.wasm.Opcode.end));
2038}2037}
20392038