diff options
author | Bill Wendling <isanbard@gmail.com> | 2010-03-11 01:18:13 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2010-03-11 01:18:13 +0000 |
commit | a9480cb333bdb8b7d11cb4012e5a7b02e8f087c5 (patch) | |
tree | a0be3ecbe9544fc90df00fdc4b5bb820e39f05d2 /cmake/modules | |
parent | b79f0925ab184c9cd8716340d27b88cb70002506 (diff) | |
download | external_llvm-a9480cb333bdb8b7d11cb4012e5a7b02e8f087c5.zip external_llvm-a9480cb333bdb8b7d11cb4012e5a7b02e8f087c5.tar.gz external_llvm-a9480cb333bdb8b7d11cb4012e5a7b02e8f087c5.tar.bz2 |
When outputing a non-lazy pointer for a stub, we may need to fill in the value
for the NLP because the object it's pointing to may be internal to the file.
This seems counter-intuitive, but bear with me. When we place the LSDA into the
TEXT section, the type info pointers need to be indirect and pc-rel. We
accomplish this by using NLPs. However, sometimes the types are local to the
file. GCC gets around this by not using a NLP in this case, but a "regular"
indirection like this:
GCC_except_tbl:
.long Lfoo-.
__ZTIA: @ This is local
...
Lfoo:
.long __ZTIA
LLVM prefers NLPs on Darwin. In fact, it's more optimal for load performance to
use them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98218 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake/modules')
0 files changed, 0 insertions, 0 deletions