diff options
author | Lang Hames <lhames@gmail.com> | 2019-04-12 18:07:28 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2019-04-12 18:07:28 +0000 |
commit | c7c1f21525f88d8efd13a01ece50504d10d012fa (patch) | |
tree | 473ddd29ee4bcf989024e40101cd1775a1769f73 /llvm/lib/ExecutionEngine/SectionMemoryManager.cpp | |
parent | e4d6ac5d19401fdd34642df5c015b4ab07f6beb0 (diff) | |
download | bcm5719-llvm-c7c1f21525f88d8efd13a01ece50504d10d012fa.tar.gz bcm5719-llvm-c7c1f21525f88d8efd13a01ece50504d10d012fa.zip |
Simplify decoupling between RuntimeDyld/RuntimeDyldChecker, add 'got_addr' util.
This patch reduces the number of functions in the interface between RuntimeDyld
and RuntimeDyldChecker by combining "GetXAddress" and "GetXContent" functions
into "GetXInfo" functions that return a struct describing both the address and
content. The GetStubOffset function is also replaced with a pair of utilities,
GetStubInfo and GetGOTInfo, that fit the new scheme. For RuntimeDyld both of
these functions will return the same result, but for the new JITLink linker
(https://reviews.llvm.org/D58704) these will provide the addresses of PLT stubs
and GOT entries respectively.
For JITLink's use, a 'got_addr' utility has been added to the rtdyld-check
language, and the syntax of 'got_addr' and 'stub_addr' has been changed: both
functions now take two arguments, a 'stub container name' and a target symbol
name. For llvm-rtdyld/RuntimeDyld the stub container name is the object file
name and section name, separated by a slash. E.g.:
rtdyld-check: *{8}(stub_addr(foo.o/__text, y)) = y
For the upcoming llvm-jitlink utility, which creates stubs on a per-file basis
rather than a per-section basis, the container name is just the file name. E.g.:
jitlink-check: *{8}(got_addr(foo.o, y)) = y
llvm-svn: 358295
Diffstat (limited to 'llvm/lib/ExecutionEngine/SectionMemoryManager.cpp')
0 files changed, 0 insertions, 0 deletions