authorgravatar for paul.verigo@gmail.comPavel Verigo <paul.verigo@gmail.com> 2026-09-16 02:07:05+02:00
committergravatar for paul.verigo@gmail.comPavel Verigo <paul.verigo@gmail.com> 2026-09-17 00:04:51+02:00
log5119f0a70de2565f22e1edc5d43d49b655c6f7a7
tree3b72c66376a962ddf75ff319fecd8489633e8fb2
parent65b732cd6118eaac95929c08f262514e58a4e3b0

wasm: .toStdMem was removed


4 files changed, 17 insertions(+), 17 deletions(-)

src/codegen/wasm/CodeGen.zig+13-13
...@@ -646,7 +646,7 @@ fn addExtraAssumeCapacity(cg: *CodeGen, extra: anytype) error{OutOfMemory}!u32 {...@@ -646,7 +646,7 @@ fn addExtraAssumeCapacity(cg: *CodeGen, extra: anytype) error{OutOfMemory}!u32 {
646 i32 => @bitCast(@field(extra, field_name)),646 i32 => @bitCast(@field(extra, field_name)),
647 InternPool.Index,647 InternPool.Index,
648 InternPool.Nav.Index,648 InternPool.Nav.Index,
649 mem.Alignment,649 Alignment,
650 => @backingInt(@field(extra, field_name)),650 => @backingInt(@field(extra, field_name)),
651 else => @compileError("Unsupported field type " ++ @typeName(field_type)),651 else => @compileError("Unsupported field type " ++ @typeName(field_type)),
652 }),652 }),
...@@ -2386,7 +2386,7 @@ fn store(cg: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, memarg: MemArg) Inner...@@ -2386,7 +2386,7 @@ fn store(cg: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, memarg: MemArg) Inner
2386 cg.mir_extra.appendAssumeCapacity(@backingInt(std.wasm.SimdOpcode.v128_store));2386 cg.mir_extra.appendAssumeCapacity(@backingInt(std.wasm.SimdOpcode.v128_store));
2387 _ = try cg.addExtraAssumeCapacity(Mir.MemArg{2387 _ = try cg.addExtraAssumeCapacity(Mir.MemArg{
2388 .offset = base_offset + memarg.offset,2388 .offset = base_offset + memarg.offset,
2389 .alignment = alignment.toStdMem(),2389 .alignment = alignment,
2390 });2390 });
2391 return cg.addInst(.{ .tag = .simd_prefix, .data = .{ .payload = extra_index } });2391 return cg.addInst(.{ .tag = .simd_prefix, .data = .{ .payload = extra_index } });
2392 }2392 }
...@@ -2416,7 +2416,7 @@ fn store(cg: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, memarg: MemArg) Inner...@@ -2416,7 +2416,7 @@ fn store(cg: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, memarg: MemArg) Inner
2416 store_opcode,2416 store_opcode,
2417 .{2417 .{
2418 .offset = base_offset + memarg.offset,2418 .offset = base_offset + memarg.offset,
2419 .alignment = alignment.toStdMem(),2419 .alignment = alignment,
2420 },2420 },
2421 );2421 );
2422}2422}
...@@ -2480,7 +2480,7 @@ fn load(cg: *CodeGen, operand: WValue, ty: Type, memarg: MemArg) InnerError!WVal...@@ -2480,7 +2480,7 @@ fn load(cg: *CodeGen, operand: WValue, ty: Type, memarg: MemArg) InnerError!WVal
2480 cg.mir_extra.appendAssumeCapacity(@backingInt(std.wasm.SimdOpcode.v128_load));2480 cg.mir_extra.appendAssumeCapacity(@backingInt(std.wasm.SimdOpcode.v128_load));
2481 _ = try cg.addExtraAssumeCapacity(Mir.MemArg{2481 _ = try cg.addExtraAssumeCapacity(Mir.MemArg{
2482 .offset = base_offset + memarg.offset,2482 .offset = base_offset + memarg.offset,
2483 .alignment = alignment.toStdMem(),2483 .alignment = alignment,
2484 });2484 });
2485 try cg.addInst(.{ .tag = .simd_prefix, .data = .{ .payload = extra_index } });2485 try cg.addInst(.{ .tag = .simd_prefix, .data = .{ .payload = extra_index } });
2486 return .stack;2486 return .stack;
...@@ -2511,7 +2511,7 @@ fn load(cg: *CodeGen, operand: WValue, ty: Type, memarg: MemArg) InnerError!WVal...@@ -2511,7 +2511,7 @@ fn load(cg: *CodeGen, operand: WValue, ty: Type, memarg: MemArg) InnerError!WVal
2511 load_opcode,2511 load_opcode,
2512 .{2512 .{
2513 .offset = base_offset + memarg.offset,2513 .offset = base_offset + memarg.offset,
2514 .alignment = alignment.toStdMem(),2514 .alignment = alignment,
2515 },2515 },
2516 );2516 );
25172517
...@@ -6141,7 +6141,7 @@ fn airIsErr(cg: *CodeGen, inst: Air.Inst.Index, opcode: std.wasm.Opcode, op_kind...@@ -6141,7 +6141,7 @@ fn airIsErr(cg: *CodeGen, inst: Air.Inst.Index, opcode: std.wasm.Opcode, op_kind
6141 try cg.emitMemBase(operand);6141 try cg.emitMemBase(operand);
6142 try cg.addMemArg(.i32_load16_u, .{6142 try cg.addMemArg(.i32_load16_u, .{
6143 .offset = operand.memOffset() + errUnionErrorOffset(pl_ty, zcu),6143 .offset = operand.memOffset() + errUnionErrorOffset(pl_ty, zcu),
6144 .alignment = Type.anyerror.abiAlignment(zcu).toStdMem(),6144 .alignment = Type.anyerror.abiAlignment(zcu),
6145 });6145 });
6146 } else {6146 } else {
6147 try cg.emitWValue(operand);6147 try cg.emitWValue(operand);
...@@ -6827,7 +6827,7 @@ fn airSplat(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {...@@ -6827,7 +6827,7 @@ fn airSplat(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
6827 cg.mir_extra.appendAssumeCapacity(opcode);6827 cg.mir_extra.appendAssumeCapacity(opcode);
6828 _ = try cg.addExtraAssumeCapacity(Mir.MemArg{6828 _ = try cg.addExtraAssumeCapacity(Mir.MemArg{
6829 .offset = operand.memOffset(),6829 .offset = operand.memOffset(),
6830 .alignment = elem_ty.abiAlignment(zcu).toStdMem(),6830 .alignment = elem_ty.abiAlignment(zcu),
6831 });6831 });
6832 try cg.addInst(.{ .tag = .simd_prefix, .data = .{ .payload = extra_index } });6832 try cg.addInst(.{ .tag = .simd_prefix, .data = .{ .payload = extra_index } });
6833 return cg.finishAir(inst, .stack, &.{ty_op.operand});6833 return cg.finishAir(inst, .stack, &.{ty_op.operand});
...@@ -7418,7 +7418,7 @@ fn lowerTry(...@@ -7418,7 +7418,7 @@ fn lowerTry(
7418 const err_offset = errUnionErrorOffset(pl_ty, zcu);7418 const err_offset = errUnionErrorOffset(pl_ty, zcu);
7419 try cg.addMemArg(.i32_load16_u, .{7419 try cg.addMemArg(.i32_load16_u, .{
7420 .offset = err_union.memOffset() + err_offset,7420 .offset = err_union.memOffset() + err_offset,
7421 .alignment = Type.anyerror.abiAlignment(zcu).toStdMem(),7421 .alignment = Type.anyerror.abiAlignment(zcu),
7422 });7422 });
7423 } else {7423 } else {
7424 try cg.emitWValue(err_union);7424 try cg.emitWValue(err_union);
...@@ -7637,7 +7637,7 @@ fn airCmpxchg(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {...@@ -7637,7 +7637,7 @@ fn airCmpxchg(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
7637 else => |size| return cg.fail("TODO: implement `@cmpxchg` for types with abi size '{d}'", .{size}),7637 else => |size| return cg.fail("TODO: implement `@cmpxchg` for types with abi size '{d}'", .{size}),
7638 }, .{7638 }, .{
7639 .offset = ptr_operand.memOffset(),7639 .offset = ptr_operand.memOffset(),
7640 .alignment = ty.abiAlignment(zcu).toStdMem(),7640 .alignment = ty.abiAlignment(zcu),
7641 });7641 });
7642 try cg.addLocal(.local_tee, val_local.local);7642 try cg.addLocal(.local_tee, val_local.local);
7643 _ = try cg.intCmp(int_ty, .eq, .stack, expected_val);7643 _ = try cg.intCmp(int_ty, .eq, .stack, expected_val);
...@@ -7701,7 +7701,7 @@ fn airAtomicLoad(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {...@@ -7701,7 +7701,7 @@ fn airAtomicLoad(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
7701 try cg.emitMemBase(ptr);7701 try cg.emitMemBase(ptr);
7702 try cg.addAtomicMemArg(tag, .{7702 try cg.addAtomicMemArg(tag, .{
7703 .offset = ptr.memOffset(),7703 .offset = ptr.memOffset(),
7704 .alignment = ty.abiAlignment(zcu).toStdMem(),7704 .alignment = ty.abiAlignment(zcu),
7705 });7705 });
7706 } else {7706 } else {
7707 _ = try cg.load(ptr, ty, .{});7707 _ = try cg.load(ptr, ty, .{});
...@@ -7761,7 +7761,7 @@ fn airAtomicRmw(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {...@@ -7761,7 +7761,7 @@ fn airAtomicRmw(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
7761 },7761 },
7762 .{7762 .{
7763 .offset = ptr.memOffset(),7763 .offset = ptr.memOffset(),
7764 .alignment = ty.abiAlignment(zcu).toStdMem(),7764 .alignment = ty.abiAlignment(zcu),
7765 },7765 },
7766 );7766 );
7767 var select_res = try cg.allocLocal(ty);7767 var select_res = try cg.allocLocal(ty);
...@@ -7822,7 +7822,7 @@ fn airAtomicRmw(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {...@@ -7822,7 +7822,7 @@ fn airAtomicRmw(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
7822 };7822 };
7823 try cg.addAtomicMemArg(tag, .{7823 try cg.addAtomicMemArg(tag, .{
7824 .offset = ptr.memOffset(),7824 .offset = ptr.memOffset(),
7825 .alignment = ty.abiAlignment(zcu).toStdMem(),7825 .alignment = ty.abiAlignment(zcu),
7826 });7826 });
7827 return cg.finishAir(inst, .stack, &.{ pl_op.operand, extra.operand });7827 return cg.finishAir(inst, .stack, &.{ pl_op.operand, extra.operand });
7828 },7828 },
...@@ -7935,7 +7935,7 @@ fn airAtomicStore(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {...@@ -7935,7 +7935,7 @@ fn airAtomicStore(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
7935 try cg.emitWValue(operand);7935 try cg.emitWValue(operand);
7936 try cg.addAtomicMemArg(tag, .{7936 try cg.addAtomicMemArg(tag, .{
7937 .offset = ptr.memOffset(),7937 .offset = ptr.memOffset(),
7938 .alignment = ty.abiAlignment(zcu).toStdMem(),7938 .alignment = ty.abiAlignment(zcu),
7939 });7939 });
7940 } else {7940 } else {
7941 try cg.store(ptr, operand, ty, .{});7941 try cg.store(ptr, operand, ty, .{});
src/codegen/wasm/Emit.zig+1-1
...@@ -990,7 +990,7 @@ pub fn lower(emit: *Emit) Error!void {...@@ -990,7 +990,7 @@ pub fn lower(emit: *Emit) Error!void {
990/// Asserts 20 unused capacity.990/// Asserts 20 unused capacity.
991fn encodeMemArg(code: *ArrayList(u8), mem_arg: Mir.MemArg) void {991fn encodeMemArg(code: *ArrayList(u8), mem_arg: Mir.MemArg) void {
992 assert(code.unusedCapacitySlice().len >= 20);992 assert(code.unusedCapacitySlice().len >= 20);
993 writeUleb128(code, @backingInt(mem_arg.alignment));993 writeUleb128(code, mem_arg.alignment.toLog2Units());
994 writeUleb128(code, mem_arg.offset);994 writeUleb128(code, mem_arg.offset);
995}995}
996996
src/codegen/wasm/Mir.zig+2-2
...@@ -705,7 +705,7 @@ pub fn extraData(self: *const Mir, comptime T: type, index: usize) struct { data...@@ -705,7 +705,7 @@ pub fn extraData(self: *const Mir, comptime T: type, index: usize) struct { data
705 Wasm.UavsExeIndex,705 Wasm.UavsExeIndex,
706 InternPool.Nav.Index,706 InternPool.Nav.Index,
707 InternPool.Index,707 InternPool.Index,
708 std.mem.Alignment,708 Alignment,
709 => @fromBackingInt(@intCast(self.extra[i])),709 => @fromBackingInt(@intCast(self.extra[i])),
710 else => @compileError("Unsupported field type " ++ @typeName(field_type)),710 else => @compileError("Unsupported field type " ++ @typeName(field_type)),
711 };711 };
...@@ -755,7 +755,7 @@ pub const Float64 = struct {...@@ -755,7 +755,7 @@ pub const Float64 = struct {
755755
756pub const MemArg = struct {756pub const MemArg = struct {
757 offset: u64,757 offset: u64,
758 alignment: std.mem.Alignment,758 alignment: Alignment,
759};759};
760760
761pub const UavRefOff = struct {761pub const UavRefOff = struct {
src/codegen/wasm/assembly.zig+1-1
...@@ -686,7 +686,7 @@ fn parseMemArg(cg: *CodeGen, inst: []const u8, word_it: *mem.TokenIterator(u8, ....@@ -686,7 +686,7 @@ fn parseMemArg(cg: *CodeGen, inst: []const u8, word_it: *mem.TokenIterator(u8, .
686 return cg.fail("Malformed assembly, malformed offset \"{s}\"", .{alignment_str});686 return cg.fail("Malformed assembly, malformed offset \"{s}\"", .{alignment_str});
687 };687 };
688688
689 return .{ .offset = @bitCast(offset), .alignment = @fromBackingInt(@intCast(alignment_p2)) };689 return .{ .offset = @bitCast(offset), .alignment = .fromLog2Units(alignment_p2) };
690 } else {690 } else {
691 const offset_str = mem_arg_str;691 const offset_str = mem_arg_str;
692 const offset = std.fmt.parseInt(i64, offset_str, 0) catch {692 const offset = std.fmt.parseInt(i64, offset_str, 0) catch {