[PATCH] D117217: Dwarf: Fix high pc patching
Vladislav Khmelevsky via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 14 14:06:34 PST 2022
This revision was automatically updated to reflect the committed changes.
Closed by commit rGfb3b86fedc99: [BOLT][DWARF] Fix high pc patching (authored by yota9).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D117217/new/
https://reviews.llvm.org/D117217
Files:
bolt/lib/Rewrite/DWARFRewriter.cpp
Index: bolt/lib/Rewrite/DWARFRewriter.cpp
===================================================================
--- bolt/lib/Rewrite/DWARFRewriter.cpp
+++ bolt/lib/Rewrite/DWARFRewriter.cpp
@@ -1502,11 +1502,15 @@
TempDebugPatcher->addLE64Patch(LowPCOffset, Range.LowPC);
}
+ uint64_t HighPC = Range.HighPC;
+ // The DW_FORM_data* is delta between high and low pc
+ if (HighPCVal->V.getForm() != dwarf::Form::DW_FORM_addr)
+ HighPC -= Range.LowPC;
+
if (isHighPcFormEightBytes(HighPCVal->V.getForm()))
- TempDebugPatcher->addLE64Patch(HighPCOffset, Range.HighPC - Range.LowPC);
+ TempDebugPatcher->addLE64Patch(HighPCOffset, HighPC);
else
- TempDebugPatcher->addLE32Patch(HighPCOffset, Range.HighPC - Range.LowPC,
- HighPCVal->Size);
+ TempDebugPatcher->addLE32Patch(HighPCOffset, HighPC);
}
void DWARFRewriter::convertToRangesPatchAbbrev(
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D117217.400142.patch
Type: text/x-patch
Size: 910 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220114/14a96d67/attachment.bin>
More information about the llvm-commits
mailing list