| ... | @@ -6720,8 +6720,6 @@ pub const FuncGen = struct { | ... | @@ -6720,8 +6720,6 @@ pub const FuncGen = struct { |
| 6720 | const operand_ty = self.typeOf(pl_op.operand); | 6720 | const operand_ty = self.typeOf(pl_op.operand); |
| 6721 | const name = self.air.nullTerminatedString(pl_op.payload); | 6721 | const name = self.air.nullTerminatedString(pl_op.payload); |
| 6722 | | 6722 | |
| 6723 | if (needDbgVarWorkaround(o)) return .none; | | |
| 6724 | | | |
| 6725 | const debug_local_var = try o.builder.debugLocalVar( | 6723 | const debug_local_var = try o.builder.debugLocalVar( |
| 6726 | try o.builder.metadataString(name), | 6724 | try o.builder.metadataString(name), |
| 6727 | self.file, | 6725 | self.file, |
| ... | @@ -8826,7 +8824,6 @@ pub const FuncGen = struct { | ... | @@ -8826,7 +8824,6 @@ pub const FuncGen = struct { |
| 8826 | if (self.is_naked) return arg_val; | 8824 | if (self.is_naked) return arg_val; |
| 8827 | | 8825 | |
| 8828 | const inst_ty = self.typeOfIndex(inst); | 8826 | const inst_ty = self.typeOfIndex(inst); |
| 8829 | if (needDbgVarWorkaround(o)) return arg_val; | | |
| 8830 | | 8827 | |
| 8831 | const name = self.air.instructions.items(.data)[@intFromEnum(inst)].arg.name; | 8828 | const name = self.air.instructions.items(.data)[@intFromEnum(inst)].arg.name; |
| 8832 | if (name == .none) return arg_val; | 8829 | if (name == .none) return arg_val; |
| ... | @@ -11831,16 +11828,6 @@ const optional_layout_version = 3; | ... | @@ -11831,16 +11828,6 @@ const optional_layout_version = 3; |
| 11831 | | 11828 | |
| 11832 | const lt_errors_fn_name = "__zig_lt_errors_len"; | 11829 | const lt_errors_fn_name = "__zig_lt_errors_len"; |
| 11833 | | 11830 | |
| 11834 | /// Without this workaround, LLVM crashes with "unknown codeview register H1" | | |
| 11835 | /// https://github.com/llvm/llvm-project/issues/56484 | | |
| 11836 | fn needDbgVarWorkaround(o: *Object) bool { | | |
| 11837 | const target = o.pt.zcu.getTarget(); | | |
| 11838 | if (target.os.tag == .windows and target.cpu.arch == .aarch64) { | | |
| 11839 | return true; | | |
| 11840 | } | | |
| 11841 | return false; | | |
| 11842 | } | | |
| 11843 | | | |
| 11844 | fn compilerRtIntBits(bits: u16) u16 { | 11831 | fn compilerRtIntBits(bits: u16) u16 { |
| 11845 | inline for (.{ 32, 64, 128 }) |b| { | 11832 | inline for (.{ 32, 64, 128 }) |b| { |
| 11846 | if (bits <= b) { | 11833 | if (bits <= b) { |