diff options
author | Rui Ueyama <ruiu@google.com> | 2015-06-15 01:23:58 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2015-06-15 01:23:58 +0000 |
commit | 588e832d0aa608ab5e8f6a30248fdc39207f2a84 (patch) | |
tree | 7536feebb13ac0b22faa5df3d276eb212ce49b87 /llvm/lib/Object/IRObjectFile.cpp | |
parent | 0bee1d7ff1e14fffbc6bbdf50e5324ea4c92aeef (diff) | |
download | llvm-588e832d0aa608ab5e8f6a30248fdc39207f2a84.zip llvm-588e832d0aa608ab5e8f6a30248fdc39207f2a84.tar.gz llvm-588e832d0aa608ab5e8f6a30248fdc39207f2a84.tar.bz2 |
COFF: Support base relocations.
PE/COFF executables/DLLs usually contain data which is called
base relocations. Base relocations are a list of addresses that
need to be fixed by the loader if load-time relocation is needed.
Base relocations are in .reloc section.
We emit one base relocation entry for each IMAGE_REL_AMD64_ADDR64
relocation.
In order to save disk space, base relocations are grouped by page.
Each group is called a block. A block starts with a 32-bit page
address followed by 16-bit offsets in the page. That is more
efficient representation of addresses than just an array of 32-bit
addresses.
llvm-svn: 239710
Diffstat (limited to 'llvm/lib/Object/IRObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions