Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/lib/libunwind The return address register entry is the D...
details: https://anonhg.NetBSD.org/src/rev/717eb57ea781
branches: trunk
changeset: 953012:717eb57ea781
user: joerg <joerg%NetBSD.org@localhost>
date: Tue Feb 23 15:07:32 2021 +0000
description:
The return address register entry is the DWARF register. On PowerPC,
this is not the same as the internal encoding, since the Link Register
is deliberately non-continous from the other general purpose register
values. To handle this, always translate the value into the internal
format.
diffstat:
sys/lib/libunwind/DwarfParser.hpp | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diffs (12 lines):
diff -r 0dc9f86d759a -r 717eb57ea781 sys/lib/libunwind/DwarfParser.hpp
--- a/sys/lib/libunwind/DwarfParser.hpp Tue Feb 23 15:05:08 2021 +0000
+++ b/sys/lib/libunwind/DwarfParser.hpp Tue Feb 23 15:07:32 2021 +0000
@@ -239,7 +239,7 @@
// Parse data alignment factor
cieInfo->dataAlignFactor = addressSpace.getSLEB128(p, cieContentEnd);
// Parse return address register
- cieInfo->returnAddressRegister = (uint8_t)addressSpace.getULEB128(p, cieContentEnd);
+ cieInfo->returnAddressRegister = R::dwarf2regno((uint8_t)addressSpace.getULEB128(p, cieContentEnd));
// Parse augmentation data based on augmentation string.
if (addressSpace.get8(strStart) == 'z') {
// parse augmentation data length
Home |
Main Index |
Thread Index |
Old Index