zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit ea694bfdb762a4dd18654c73aaaaf1b917d99cc3 (tree)
parent 9b4f2b40e36a2b59d0550e22f7b3fcfc06d70135
Author: Alex Rønne Petersen <alex@alexrp.com>
Date:   Sun, 12 Oct 2025 02:36:40 +0200

std.debug.cpu_context: consider arm and aarch64 reserved register ranges unsupported

If these ever get allocated, it's most likely going to be for things that don't
matter to us anyway, so completely abandoning DWARF unwinding just because we
see these doesn't seem justified. We will still do so if we're actually asked to
read from such a register, which is the only actually problematic case; see
c23a5ccd19 for more details.

Diffstat:
Mlib/std/debug/cpu_context.zig | 6++++++
1 file changed, 6 insertions(+), 0 deletions(-)

diff --git a/lib/std/debug/cpu_context.zig b/lib/std/debug/cpu_context.zig @@ -322,6 +322,7 @@ const Arm = struct { 131 => return error.UnsupportedRegister, // SPSR_ABT 132 => return error.UnsupportedRegister, // SPSR_UND 133 => return error.UnsupportedRegister, // SPSR_SVC + 134...142 => return error.UnsupportedRegister, // Reserved 143 => return error.UnsupportedRegister, // RA_AUTH_CODE 144...150 => return error.UnsupportedRegister, // R8_USR - R14_USR 151...157 => return error.UnsupportedRegister, // R8_FIQ - R14_FIQ @@ -329,12 +330,16 @@ const Arm = struct { 160...161 => return error.UnsupportedRegister, // R13_ABT - R14_ABT 162...163 => return error.UnsupportedRegister, // R13_UND - R14_UND 164...165 => return error.UnsupportedRegister, // R13_SVC - R14_SVC + 166...191 => return error.UnsupportedRegister, // Reserved 192...199 => return error.UnsupportedRegister, // wC0 - wC7 + 200...255 => return error.UnsupportedRegister, // Reserved 256...287 => return error.UnsupportedRegister, // D0 - D31 + 288...319 => return error.UnsupportedRegister, // Reserved for FP/NEON 320 => return error.UnsupportedRegister, // TPIDRURO 321 => return error.UnsupportedRegister, // TPIDRURW 322 => return error.UnsupportedRegister, // TPIDPR 323 => return error.UnsupportedRegister, // HTPIDPR + 324...8191 => return error.UnsupportedRegister, // Reserved 8192...16383 => return error.UnsupportedRegister, // Unspecified vendor co-processor register else => return error.InvalidRegister, @@ -393,6 +398,7 @@ const Aarch64 = extern struct { 37 => return error.UnsupportedRegister, // TPIDR_EL1 38 => return error.UnsupportedRegister, // TPIDR_EL2 39 => return error.UnsupportedRegister, // TPIDR_EL3 + 40...45 => return error.UnsupportedRegister, // Reserved 46 => return error.UnsupportedRegister, // VG 47 => return error.UnsupportedRegister, // FFR 48...63 => return error.UnsupportedRegister, // P0 - P15