aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/IRObjectFile.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2015-06-15 01:23:58 +0000
committerRui Ueyama <ruiu@google.com>2015-06-15 01:23:58 +0000
commit588e832d0aa608ab5e8f6a30248fdc39207f2a84 (patch)
tree7536feebb13ac0b22faa5df3d276eb212ce49b87 /llvm/lib/Object/IRObjectFile.cpp
parent0bee1d7ff1e14fffbc6bbdf50e5324ea4c92aeef (diff)
downloadllvm-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