Module Name: src Committed By: joerg Date: Tue Feb 23 15:07:32 UTC 2021
Modified Files: src/sys/lib/libunwind: DwarfParser.hpp Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/lib/libunwind/DwarfParser.hpp Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/lib/libunwind/DwarfParser.hpp diff -u src/sys/lib/libunwind/DwarfParser.hpp:1.5 src/sys/lib/libunwind/DwarfParser.hpp:1.6 --- src/sys/lib/libunwind/DwarfParser.hpp:1.5 Sat May 3 23:19:56 2014 +++ src/sys/lib/libunwind/DwarfParser.hpp Tue Feb 23 15:07:32 2021 @@ -239,7 +239,7 @@ bool CFI_Parser<A, R>::parseCIE(A &addre // 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