aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMBaseInfo.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2011-01-17 08:03:18 +0000
committerEvan Cheng <evan.cheng@apple.com>2011-01-17 08:03:18 +0000
commit5de5d4b6d0eb3fd379fa571d82f6fa764460b3b8 (patch)
tree3e3003c4648ab61634d5f42fa60ae13332153883 /lib/Target/ARM/ARMBaseInfo.h
parentb1086a9c6d6d5ee3070a68076f38eec841cefd58 (diff)
downloadexternal_llvm-5de5d4b6d0eb3fd379fa571d82f6fa764460b3b8.zip
external_llvm-5de5d4b6d0eb3fd379fa571d82f6fa764460b3b8.tar.gz
external_llvm-5de5d4b6d0eb3fd379fa571d82f6fa764460b3b8.tar.bz2
Materialize GA addresses with movw + movt pairs for Darwin in PIC mode. e.g.
movw r0, :lower16:(L_foo$non_lazy_ptr-(LPC0_0+4)) movt r0, :upper16:(L_foo$non_lazy_ptr-(LPC0_0+4)) LPC0_0: add r0, pc, r0 It's not yet enabled by default as some tests are failing. I suspect bugs in down stream tools. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123619 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMBaseInfo.h')
-rw-r--r--lib/Target/ARM/ARMBaseInfo.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMBaseInfo.h b/lib/Target/ARM/ARMBaseInfo.h
index 63e8f96..d3831d2 100644
--- a/lib/Target/ARM/ARMBaseInfo.h
+++ b/lib/Target/ARM/ARMBaseInfo.h
@@ -185,6 +185,18 @@ namespace ARMII {
/// higher 16 bit of the address. Used only via movt instruction.
MO_HI16,
+ /// MO_LO16_NONLAZY_PIC - On a symbol operand "FOO", this represents a
+ /// relocation containing lower 16 bit of the PC relative address of the
+ /// non-lazy-ptr indirect symbol, i.e. "FOO$non_lazy_ptr - LABEL".
+ /// Used only via movw instruction.
+ MO_LO16_NONLAZY_PIC,
+
+ /// MO_HI16_NONLAZY_PIC - On a symbol operand "FOO", this represents a
+ /// relocation containing lower 16 bit of the PC relative address of the
+ /// non-lazy-ptr indirect symbol, i.e. "FOO$non_lazy_ptr - LABEL".
+ /// Used only via movt instruction.
+ MO_HI16_NONLAZY_PIC,
+
/// MO_PLT - On a symbol operand, this represents an ELF PLT reference on a
/// call operand.
MO_PLT