authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-08-09 05:08:36+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-08-09 17:53:04+02:00
log0d947ae87a2280d6f4acec16cf2307d11aed03e2
tree7a35ad1dbbee6eca56b158646c1d65f1be65768b
parent5cbafcfd56862d9042b2446b0cac9d07d4d141a0
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.debug: use a different register number for pc on sparc

Also report the floating-point registers as unsupported rather than invalid.

2 files changed, 6 insertions(+), 2 deletions(-)

lib/std/debug/Dwarf.zig+1-1
......@@ -1462,7 +1462,7 @@ pub fn ipRegNum(arch: std.Target.Cpu.Arch) ?u16 {
14621462 .powerpc, .powerpcle, .powerpc64, .powerpc64le => 67,
14631463 .riscv32, .riscv32be, .riscv64, .riscv64be => 65,
14641464 .s390x => 65,
1465 .sparc, .sparc64 => 32,
1465 .sparc, .sparc64 => 65,
14661466 .ve => 144,
14671467 .x86 => 8,
14681468 .x86_64 => 16,
lib/std/debug/cpu_context.zig+5-1
......@@ -1613,7 +1613,11 @@ const Sparc = extern struct {
16131613 8...15 => return @ptrCast(&ctx.o[register_num - 8]),
16141614 16...23 => return @ptrCast(&ctx.l[register_num - 16]),
16151615 24...31 => return @ptrCast(&ctx.i[register_num - 24]),
1616 32 => return @ptrCast(&ctx.pc),
1616 65 => return @ptrCast(&ctx.pc),
1617
1618 32...63 => return error.UnsupportedRegister, // F0-F31
1619 64 => return error.UnsupportedRegister, // Y
1620 72...87 => return error.UnsupportedRegister, // D0-D15
16171621
16181622 else => return error.InvalidRegister,
16191623 }