Mask top 5 bits of PC for symbols

This commit is contained in:
2025-09-06 01:29:11 -04:00
parent f7f112f7c1
commit d610e3de14
3 changed files with 11 additions and 11 deletions
+4 -4
View File
@@ -174,13 +174,13 @@ fn extract_isx_symbols(input: &[u8]) -> Option<Vec<Symbol>> {
let name_str = String::from_utf8_lossy(name_bytes);
let address = u32::from_le_bytes(*address_bytes);
syms.push(Symbol {
address,
address: address & 0x07ffffff,
size: Some(4),
name: demangle_any(&name_str),
});
}
}
0x20 | 0x21 | 0x22 => {
0x20..=0x22 => {
// System (undocumented)
let length_bytes;
(length_bytes, buf) = buf.split_first_chunk()?;
@@ -253,8 +253,8 @@ fn parse_inline(ctx: &mut ParseContext, node: gimli::EntriesTreeNode<Reader>) ->
let name = Arc::new(name);
let mut ranges = ctx.dorf.die_ranges(ctx.unit, node.entry())?;
while let Some(range) = ranges.next()? {
let start = range.begin as u32;
let end = range.end as u32;
let start = range.begin as u32 & 0x07ffffff;
let end = range.end as u32 & 0x07ffffff;
ctx.frames.add(start, end, name.clone());
}
}