diff options
| author | Alex Rønne Petersen <alex@alexrp.com> | 2024-11-04 08:29:18 +0100 |
|---|---|---|
| committer | Alex Rønne Petersen <alex@alexrp.com> | 2024-11-04 08:29:42 +0100 |
| commit | af71694dd946a88bf0db55e4513223e344bfde40 (patch) | |
| tree | e3605ef12a6fb989ccdeb0a6d2e2c8c2bfb31cc0 /lib/std/debug/Dwarf/abi.zig | |
| parent | 4049be90de6a557c1ab522363fddbb71d3ccdb18 (diff) | |
| download | zig-af71694dd946a88bf0db55e4513223e344bfde40.tar.gz zig-af71694dd946a88bf0db55e4513223e344bfde40.zip | |
std.debug: Add handling for armeb, thumb, thumbeb, and aarch64_be.
Diffstat (limited to 'lib/std/debug/Dwarf/abi.zig')
| -rw-r--r-- | lib/std/debug/Dwarf/abi.zig | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/std/debug/Dwarf/abi.zig b/lib/std/debug/Dwarf/abi.zig index 60fd10a794..e0a2a4858b 100644 --- a/lib/std/debug/Dwarf/abi.zig +++ b/lib/std/debug/Dwarf/abi.zig @@ -35,8 +35,8 @@ pub fn ipRegNum(arch: Arch) ?u8 { return switch (arch) { .x86 => 8, .x86_64 => 16, - .arm => 15, - .aarch64 => 32, + .arm, .armeb, .thumb, .thumbeb => 15, + .aarch64, .aarch64_be => 32, else => null, }; } @@ -47,8 +47,8 @@ pub fn fpRegNum(arch: Arch, reg_context: RegisterContext) u8 { // (only in .eh_frame), and that is now the convention for MachO .x86 => if (reg_context.eh_frame and reg_context.is_macho) 4 else 5, .x86_64 => 6, - .arm => 11, - .aarch64 => 29, + .arm, .armeb, .thumb, .thumbeb => 11, + .aarch64, .aarch64_be => 29, else => unreachable, }; } @@ -57,8 +57,8 @@ pub fn spRegNum(arch: Arch, reg_context: RegisterContext) u8 { return switch (arch) { .x86 => if (reg_context.eh_frame and reg_context.is_macho) 5 else 4, .x86_64 => 7, - .arm => 13, - .aarch64 => 31, + .arm, .armeb, .thumb, .thumbeb => 13, + .aarch64, .aarch64_be => 31, else => unreachable, }; } @@ -131,7 +131,7 @@ pub fn regBytes( 16 => mem.asBytes(&thread_context_ptr.Rip), else => error.InvalidRegister, }, - .aarch64 => switch (reg_number) { + .aarch64, .aarch64_be => switch (reg_number) { 0...30 => mem.asBytes(&thread_context_ptr.DUMMYUNIONNAME.X[reg_number]), 31 => mem.asBytes(&thread_context_ptr.Sp), 32 => mem.asBytes(&thread_context_ptr.Pc), @@ -269,7 +269,7 @@ pub fn regBytes( }, else => error.UnimplementedOs, }, - .arm => switch (builtin.os.tag) { + .arm, .armeb, .thumb, .thumbeb => switch (builtin.os.tag) { .linux => switch (reg_number) { 0 => mem.asBytes(&ucontext_ptr.mcontext.arm_r0), 1 => mem.asBytes(&ucontext_ptr.mcontext.arm_r1), @@ -292,7 +292,7 @@ pub fn regBytes( }, else => error.UnimplementedOs, }, - .aarch64 => switch (builtin.os.tag) { + .aarch64, .aarch64_be => switch (builtin.os.tag) { .macos, .ios, .watchos => switch (reg_number) { 0...28 => mem.asBytes(&ucontext_ptr.mcontext.ss.regs[reg_number]), 29 => mem.asBytes(&ucontext_ptr.mcontext.ss.fp), |
