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 {
646646 i32 => @bitCast(@field(extra, field_name)),
647647 InternPool.Index,
648648 InternPool.Nav.Index,
649 mem.Alignment,
649 Alignment,
650650 => @backingInt(@field(extra, field_name)),
651651 else => @compileError("Unsupported field type " ++ @typeName(field_type)),
652652 }),
......@@ -2386,7 +2386,7 @@ fn store(cg: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, memarg: MemArg) Inner
23862386 cg.mir_extra.appendAssumeCapacity(@backingInt(std.wasm.SimdOpcode.v128_store));
23872387 _ = try cg.addExtraAssumeCapacity(Mir.MemArg{
23882388 .offset = base_offset + memarg.offset,
2389 .alignment = alignment.toStdMem(),
2389 .alignment = alignment,
23902390 });
23912391 return cg.addInst(.{ .tag = .simd_prefix, .data = .{ .payload = extra_index } });
23922392 }
......@@ -2416,7 +2416,7 @@ fn store(cg: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, memarg: MemArg) Inner
24162416 store_opcode,
24172417 .{
24182418 .offset = base_offset + memarg.offset,
2419 .alignment = alignment.toStdMem(),
2419 .alignment = alignment,
24202420 },
24212421 );
24222422}
......@@ -2480,7 +2480,7 @@ fn load(cg: *CodeGen, operand: WValue, ty: Type, memarg: MemArg) InnerError!WVal
24802480 cg.mir_extra.appendAssumeCapacity(@backingInt(std.wasm.SimdOpcode.v128_load));
24812481 _ = try cg.addExtraAssumeCapacity(Mir.MemArg{
24822482 .offset = base_offset + memarg.offset,
2483 .alignment = alignment.toStdMem(),
2483 .alignment = alignment,
24842484 });
24852485 try cg.addInst(.{ .tag = .simd_prefix, .data = .{ .payload = extra_index } });
24862486 return .stack;
......@@ -2511,7 +2511,7 @@ fn load(cg: *CodeGen, operand: WValue, ty: Type, memarg: MemArg) InnerError!WVal
25112511 load_opcode,
25122512 .{
25132513 .offset = base_offset + memarg.offset,
2514 .alignment = alignment.toStdMem(),
2514 .alignment = alignment,
25152515 },
25162516 );
25172517
......@@ -6141,7 +6141,7 @@ fn airIsErr(cg: *CodeGen, inst: Air.Inst.Index, opcode: std.wasm.Opcode, op_kind
61416141 try cg.emitMemBase(operand);
61426142 try cg.addMemArg(.i32_load16_u, .{
61436143 .offset = operand.memOffset() + errUnionErrorOffset(pl_ty, zcu),
6144 .alignment = Type.anyerror.abiAlignment(zcu).toStdMem(),
6144 .alignment = Type.anyerror.abiAlignment(zcu),
61456145 });
61466146 } else {
61476147 try cg.emitWValue(operand);
......@@ -6827,7 +6827,7 @@ fn airSplat(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
68276827 cg.mir_extra.appendAssumeCapacity(opcode);
68286828 _ = try cg.addExtraAssumeCapacity(Mir.MemArg{
68296829 .offset = operand.memOffset(),
6830 .alignment = elem_ty.abiAlignment(zcu).toStdMem(),
6830 .alignment = elem_ty.abiAlignment(zcu),
68316831 });
68326832 try cg.addInst(.{ .tag = .simd_prefix, .data = .{ .payload = extra_index } });
68336833 return cg.finishAir(inst, .stack, &.{ty_op.operand});
......@@ -7418,7 +7418,7 @@ fn lowerTry(
74187418 const err_offset = errUnionErrorOffset(pl_ty, zcu);
74197419 try cg.addMemArg(.i32_load16_u, .{
74207420 .offset = err_union.memOffset() + err_offset,
7421 .alignment = Type.anyerror.abiAlignment(zcu).toStdMem(),
7421 .alignment = Type.anyerror.abiAlignment(zcu),
74227422 });
74237423 } else {
74247424 try cg.emitWValue(err_union);
......@@ -7637,7 +7637,7 @@ fn airCmpxchg(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
76377637 else => |size| return cg.fail("TODO: implement `@cmpxchg` for types with abi size '{d}'", .{size}),
76387638 }, .{
76397639 .offset = ptr_operand.memOffset(),
7640 .alignment = ty.abiAlignment(zcu).toStdMem(),
7640 .alignment = ty.abiAlignment(zcu),
76417641 });
76427642 try cg.addLocal(.local_tee, val_local.local);
76437643 _ = try cg.intCmp(int_ty, .eq, .stack, expected_val);
......@@ -7701,7 +7701,7 @@ fn airAtomicLoad(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
77017701 try cg.emitMemBase(ptr);
77027702 try cg.addAtomicMemArg(tag, .{
77037703 .offset = ptr.memOffset(),
7704 .alignment = ty.abiAlignment(zcu).toStdMem(),
7704 .alignment = ty.abiAlignment(zcu),
77057705 });
77067706 } else {
77077707 _ = try cg.load(ptr, ty, .{});
......@@ -7761,7 +7761,7 @@ fn airAtomicRmw(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
77617761 },
77627762 .{
77637763 .offset = ptr.memOffset(),
7764 .alignment = ty.abiAlignment(zcu).toStdMem(),
7764 .alignment = ty.abiAlignment(zcu),
77657765 },
77667766 );
77677767 var select_res = try cg.allocLocal(ty);
......@@ -7822,7 +7822,7 @@ fn airAtomicRmw(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
78227822 };
78237823 try cg.addAtomicMemArg(tag, .{
78247824 .offset = ptr.memOffset(),
7825 .alignment = ty.abiAlignment(zcu).toStdMem(),
7825 .alignment = ty.abiAlignment(zcu),
78267826 });
78277827 return cg.finishAir(inst, .stack, &.{ pl_op.operand, extra.operand });
78287828 },
......@@ -7935,7 +7935,7 @@ fn airAtomicStore(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
79357935 try cg.emitWValue(operand);
79367936 try cg.addAtomicMemArg(tag, .{
79377937 .offset = ptr.memOffset(),
7938 .alignment = ty.abiAlignment(zcu).toStdMem(),
7938 .alignment = ty.abiAlignment(zcu),
79397939 });
79407940 } else {
79417941 try cg.store(ptr, operand, ty, .{});
src/codegen/wasm/Emit.zig+1-1
......@@ -990,7 +990,7 @@ pub fn lower(emit: *Emit) Error!void {
990990/// Asserts 20 unused capacity.
991991fn encodeMemArg(code: *ArrayList(u8), mem_arg: Mir.MemArg) void {
992992 assert(code.unusedCapacitySlice().len >= 20);
993 writeUleb128(code, @backingInt(mem_arg.alignment));
993 writeUleb128(code, mem_arg.alignment.toLog2Units());
994994 writeUleb128(code, mem_arg.offset);
995995}
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
705705 Wasm.UavsExeIndex,
706706 InternPool.Nav.Index,
707707 InternPool.Index,
708 std.mem.Alignment,
708 Alignment,
709709 => @fromBackingInt(@intCast(self.extra[i])),
710710 else => @compileError("Unsupported field type " ++ @typeName(field_type)),
711711 };
......@@ -755,7 +755,7 @@ pub const Float64 = struct {
755755
756756pub const MemArg = struct {
757757 offset: u64,
758 alignment: std.mem.Alignment,
758 alignment: Alignment,
759759};
760760
761761pub 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, .
686686 return cg.fail("Malformed assembly, malformed offset \"{s}\"", .{alignment_str});
687687 };
688688
689 return .{ .offset = @bitCast(offset), .alignment = @fromBackingInt(@intCast(alignment_p2)) };
689 return .{ .offset = @bitCast(offset), .alignment = .fromLog2Units(alignment_p2) };
690690 } else {
691691 const offset_str = mem_arg_str;
692692 const offset = std.fmt.parseInt(i64, offset_str, 0) catch {