summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/lang/cpp/call-function/main.cpp
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2016-06-19 21:39:37 +0000
committerSimon Atanasyan <simon@atanasyan.com>2016-06-19 21:39:37 +0000
commit4132511cdc357c782941b4056d124e8827fb87d1 (patch)
tree596361be99000ba64fb35bbf51f05702518908e5 /lldb/packages/Python/lldbsuite/test/lang/cpp/call-function/main.cpp
parent3ffe2dd4d2315e20896928046aad4937cd43a850 (diff)
downloadbcm5719-llvm-4132511cdc357c782941b4056d124e8827fb87d1.tar.gz
bcm5719-llvm-4132511cdc357c782941b4056d124e8827fb87d1.zip
[ELF][MIPS] Support GOT entries for non-preemptible symbols with different addends
There are two motivations for this patch. The first one is a preparation for support MIPS TLS relocations. It might sound like a joke but for GOT entries related to TLS relocations MIPS ABI uses almost regular approach with creation of dynamic relocations for each GOT enty etc. But we need to separate these 'regular' TLS related entries from MIPS specific local and global parts of GOT. ABI declare simple solution - all TLS related entries allocated at the end of GOT after local/global parts. The second motivation it to support GOT relocations for non-preemptible symbols with addends. If we have more than one GOT relocations against symbol S with different addends we need to create GOT entries for each unique Symbol/Addend pairs. So we store all MIPS GOT entries in separate containers. For non-preemptible symbols we have to maintain two data structures. The first one is MipsLocal vector. Each entry corresponds to the GOT entry from the 'local' part of the GOT contains the symbol's address plus addend. The second one is MipsLocalMap. It is a map from Symbol/Addend pair to the GOT index. Differential Revision: http://reviews.llvm.org/D21297 llvm-svn: 273127
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/cpp/call-function/main.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud