mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
3bf0debbff
When looking up data referenced from pdata/xdata structures, the referenced data can be found in two different ways: - For an unrelocated object file, it's located via a relocation - For a relocated, linked image, the data is referenced with an (image relative) absolute address For the latter case, the absolute address can optionally be described with a symbol. For the case of an object file, there's two offsets involved; one immediate offset encoded in the data location that is modified by the relocation, and a section offset in the symbol. Previously, for the ExceptionRecord field, we printed the offset from the symbol (only) but used the immediate offset ignoring the symbol's address (using only the symbol's section) for printing the exception data. Add a helper method for doing the lookup and address calculation, for simplifying the calling code and making all the cases consistent. This addresses an existing FIXME comment, fixing printing of the exception data for cases where relocations point at individual symbols in the xdata section (which is what MSVC generates) instead of all relocations pointing at the start of the xdata section (which is what LLVM generates). This also fixes printing of the function name for packed entries in linked images. Relanded with a format string fix in the formatSymbol function; one can't use %X as format string for an uint64_t. That bug has been present since this code was added in e6971cab306cd. Differential Revision: https://reviews.llvm.org/D100305 |
||
---|---|---|
.. | ||
bugpoint | ||
bugpoint-passes | ||
dsymutil | ||
gold | ||
llc | ||
lli | ||
llvm-ar | ||
llvm-as | ||
llvm-as-fuzzer | ||
llvm-bcanalyzer | ||
llvm-c-test | ||
llvm-cat | ||
llvm-cfi-verify | ||
llvm-config | ||
llvm-cov | ||
llvm-cvtres | ||
llvm-cxxdump | ||
llvm-cxxfilt | ||
llvm-cxxmap | ||
llvm-diff | ||
llvm-dis | ||
llvm-dwarfdump | ||
llvm-dwp | ||
llvm-elfabi | ||
llvm-exegesis | ||
llvm-extract | ||
llvm-go | ||
llvm-gsymutil | ||
llvm-ifs | ||
llvm-isel-fuzzer | ||
llvm-itanium-demangle-fuzzer | ||
llvm-jitlink | ||
llvm-jitlistener | ||
llvm-libtool-darwin | ||
llvm-link | ||
llvm-lipo | ||
llvm-lto | ||
llvm-lto2 | ||
llvm-mc | ||
llvm-mc-assemble-fuzzer | ||
llvm-mc-disassemble-fuzzer | ||
llvm-mca | ||
llvm-microsoft-demangle-fuzzer | ||
llvm-ml | ||
llvm-modextract | ||
llvm-mt | ||
llvm-nm | ||
llvm-objcopy | ||
llvm-objdump | ||
llvm-opt-fuzzer | ||
llvm-opt-report | ||
llvm-pdbutil | ||
llvm-profdata | ||
llvm-profgen | ||
llvm-rc | ||
llvm-readobj | ||
llvm-reduce | ||
llvm-rtdyld | ||
llvm-shlib | ||
llvm-size | ||
llvm-special-case-list-fuzzer | ||
llvm-split | ||
llvm-stress | ||
llvm-strings | ||
llvm-symbolizer | ||
llvm-undname | ||
llvm-xray | ||
llvm-yaml-numeric-parser-fuzzer | ||
llvm-yaml-parser-fuzzer | ||
lto | ||
msbuild | ||
obj2yaml | ||
opt | ||
opt-viewer | ||
remarks-shlib | ||
sancov | ||
sanstats | ||
split-file | ||
verify-uselistorder | ||
vfabi-demangle-fuzzer | ||
xcode-toolchain | ||
yaml2obj | ||
CMakeLists.txt |