aboutsummaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
Diffstat (limited to 'std')
-rw-r--r--std/debug/index.zig11
-rw-r--r--std/special/compiler_rt/index.zig19
2 files changed, 27 insertions, 3 deletions
diff --git a/std/debug/index.zig b/std/debug/index.zig
index 8d90a6aa07..b26800677f 100644
--- a/std/debug/index.zig
+++ b/std/debug/index.zig
@@ -791,14 +791,21 @@ fn getLineNumberInfo(st: &ElfStackTrace, compile_unit: &const CompileUnit, targe
}
const version = try in_stream.readInt(st.elf.endian, u16);
- if (version != 2) return error.InvalidDebugInfo;
+ // TODO support 3 and 5
+ if (version != 2 and version != 4) return error.InvalidDebugInfo;
- const prologue_length = try in_stream.readInt(st.elf.endian, u32);
+ const prologue_length = if (is_64) try in_stream.readInt(st.elf.endian, u64)
+ else try in_stream.readInt(st.elf.endian, u32);
const prog_start_offset = (try in_file.getPos()) + prologue_length;
const minimum_instruction_length = try in_stream.readByte();
if (minimum_instruction_length == 0) return error.InvalidDebugInfo;
+ if (version >= 4) {
+ // maximum_operations_per_instruction
+ _ = try in_stream.readByte();
+ }
+
const default_is_stmt = (try in_stream.readByte()) != 0;
const line_base = try in_stream.readByteSigned();
diff --git a/std/special/compiler_rt/index.zig b/std/special/compiler_rt/index.zig
index d12b0d2fd6..81fe1ffec1 100644
--- a/std/special/compiler_rt/index.zig
+++ b/std/special/compiler_rt/index.zig
@@ -127,7 +127,24 @@ fn isArmArch() bool {
builtin.Arch.armv5,
builtin.Arch.armv5te,
builtin.Arch.armv4t,
- builtin.Arch.armeb => true,
+ builtin.Arch.armebv8_2a,
+ builtin.Arch.armebv8_1a,
+ builtin.Arch.armebv8,
+ builtin.Arch.armebv8r,
+ builtin.Arch.armebv8m_baseline,
+ builtin.Arch.armebv8m_mainline,
+ builtin.Arch.armebv7,
+ builtin.Arch.armebv7em,
+ builtin.Arch.armebv7m,
+ builtin.Arch.armebv7s,
+ builtin.Arch.armebv7k,
+ builtin.Arch.armebv6,
+ builtin.Arch.armebv6m,
+ builtin.Arch.armebv6k,
+ builtin.Arch.armebv6t2,
+ builtin.Arch.armebv5,
+ builtin.Arch.armebv5te,
+ builtin.Arch.armebv4t => true,
else => false,
};
}