| ... | @@ -830,7 +830,7 @@ fn splitType(self: *Self, ty: Type) ![2]Type { | ... | @@ -830,7 +830,7 @@ fn splitType(self: *Self, ty: Type) ![2]Type { |
| 830 | else => break, | 830 | else => break, |
| 831 | }; | 831 | }; |
| 832 | } else if (parts[0].abiSize(mod) + parts[1].abiSize(mod) == ty.abiSize(mod)) return parts; | 832 | } else if (parts[0].abiSize(mod) + parts[1].abiSize(mod) == ty.abiSize(mod)) return parts; |
| 833 | return std.debug.panic("TODO implement splitType for {}", .{ty.fmt(mod)}); | 833 | return self.fail("TODO implement splitType for {}", .{ty.fmt(mod)}); |
| 834 | } | 834 | } |
| 835 | | 835 | |
| 836 | fn symbolIndex(self: *Self) !u32 { | 836 | fn symbolIndex(self: *Self) !u32 { |
| ... | @@ -3152,11 +3152,6 @@ fn genCopy(self: *Self, ty: Type, dst_mcv: MCValue, src_mcv: MCValue) !void { | ... | @@ -3152,11 +3152,6 @@ fn genCopy(self: *Self, ty: Type, dst_mcv: MCValue, src_mcv: MCValue) !void { |
| 3152 | }; | 3152 | }; |
| 3153 | defer if (src_info) |info| self.register_manager.unlockReg(info.addr_lock); | 3153 | defer if (src_info) |info| self.register_manager.unlockReg(info.addr_lock); |
| 3154 | | 3154 | |
| 3155 | switch (ty.zigTypeTag(mod)) { | | |
| 3156 | .Optional => return, | | |
| 3157 | else => {}, | | |
| 3158 | } | | |
| 3159 | | | |
| 3160 | var part_disp: i32 = 0; | 3155 | var part_disp: i32 = 0; |
| 3161 | for (dst_regs, try self.splitType(ty), 0..) |dst_reg, dst_ty, part_i| { | 3156 | for (dst_regs, try self.splitType(ty), 0..) |dst_reg, dst_ty, part_i| { |
| 3162 | try self.genSetReg(dst_ty, dst_reg, switch (src_mcv) { | 3157 | try self.genSetReg(dst_ty, dst_reg, switch (src_mcv) { |
| ... | @@ -3554,8 +3549,6 @@ fn genSetReg(self: *Self, ty: Type, reg: Register, src_mcv: MCValue) InnerError! | ... | @@ -3554,8 +3549,6 @@ fn genSetReg(self: *Self, ty: Type, reg: Register, src_mcv: MCValue) InnerError! |
| 3554 | }, | 3549 | }, |
| 3555 | }, | 3550 | }, |
| 3556 | }); | 3551 | }); |
| 3557 | | | |
| 3558 | unreachable; | | |
| 3559 | }, | 3552 | }, |
| 3560 | .air_ref => |ref| try self.genSetReg(ty, reg, try self.resolveInst(ref)), | 3553 | .air_ref => |ref| try self.genSetReg(ty, reg, try self.resolveInst(ref)), |
| 3561 | .indirect => |reg_off| { | 3554 | .indirect => |reg_off| { |