| ... | @@ -88178,12 +88178,15 @@ fn airStore(self: *CodeGen, inst: Air.Inst.Index, safety: bool) !void { | ... | @@ -88178,12 +88178,15 @@ fn airStore(self: *CodeGen, inst: Air.Inst.Index, safety: bool) !void { |
| 88178 | const reg_locks = self.register_manager.lockRegsAssumeUnused(3, .{ .rdi, .rsi, .rcx }); | 88178 | const reg_locks = self.register_manager.lockRegsAssumeUnused(3, .{ .rdi, .rsi, .rcx }); |
| 88179 | defer for (reg_locks) |lock| self.register_manager.unlockReg(lock); | 88179 | defer for (reg_locks) |lock| self.register_manager.unlockReg(lock); |
| 88180 | | 88180 | |
| | 88181 | const ptr_ty = self.typeOf(bin_op.lhs); |
| | 88182 | const ptr_info = ptr_ty.ptrInfo(zcu); |
| | 88183 | const is_packed = ptr_info.flags.vector_index != .none or ptr_info.packed_offset.host_size > 0; |
| | 88184 | if (is_packed) try self.spillEflagsIfOccupied(); |
| | 88185 | |
| 88181 | const src_mcv = try self.resolveInst(bin_op.rhs); | 88186 | const src_mcv = try self.resolveInst(bin_op.rhs); |
| 88182 | const ptr_mcv = try self.resolveInst(bin_op.lhs); | 88187 | const ptr_mcv = try self.resolveInst(bin_op.lhs); |
| 88183 | const ptr_ty = self.typeOf(bin_op.lhs); | | |
| 88184 | | 88188 | |
| 88185 | const ptr_info = ptr_ty.ptrInfo(zcu); | 88189 | if (is_packed) { |
| 88186 | if (ptr_info.flags.vector_index != .none or ptr_info.packed_offset.host_size > 0) { | | |
| 88187 | try self.packedStore(ptr_ty, ptr_mcv, src_mcv); | 88190 | try self.packedStore(ptr_ty, ptr_mcv, src_mcv); |
| 88188 | } else { | 88191 | } else { |
| 88189 | try self.store(ptr_ty, ptr_mcv, src_mcv, .{ .safety = safety }); | 88192 | try self.store(ptr_ty, ptr_mcv, src_mcv, .{ .safety = safety }); |