summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorSean Fertile <sfertile@ca.ibm.com>2018-06-15 19:47:11 +0000
committerSean Fertile <sfertile@ca.ibm.com>2018-06-15 19:47:11 +0000
commit80b8f82f179a31f7fbc0f3076ebb681fdda3e504 (patch)
tree46c7e2c22af6e6af03054f64d976fe53a004a858 /llvm/test
parent72aed5e5dc7126be84a0d90063b441b6406b73f7 (diff)
downloadbcm5719-llvm-80b8f82f179a31f7fbc0f3076ebb681fdda3e504.tar.gz
bcm5719-llvm-80b8f82f179a31f7fbc0f3076ebb681fdda3e504.zip
[PPC64] Support "symbol@high" and "symbol@higha" symbol modifers.
Add support for the "@high" and "@higha" symbol modifiers in powerpc64 assembly. The modifiers represent accessing the segment consiting of bits 16-31 of a 64-bit address/offset. Differential Revision: https://reviews.llvm.org/D47729 llvm-svn: 334855
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/MC/PowerPC/ppc64-fixup-apply.s13
-rw-r--r--llvm/test/MC/PowerPC/ppc64-fixups.s17
2 files changed, 25 insertions, 5 deletions
diff --git a/llvm/test/MC/PowerPC/ppc64-fixup-apply.s b/llvm/test/MC/PowerPC/ppc64-fixup-apply.s
index c3b7d06eb48..d16c9f20380 100644
--- a/llvm/test/MC/PowerPC/ppc64-fixup-apply.s
+++ b/llvm/test/MC/PowerPC/ppc64-fixup-apply.s
@@ -40,6 +40,9 @@ addis 1, 1, 1b-2f@ha
addi 1, 1, target6@h
addis 1, 1, target6@h
+addi 1, 1, target6@high
+addis 1, 1, target6@higha
+
.set target6, 0x4321fedc
addi 1, 1, target7@higher
@@ -70,7 +73,7 @@ addis 1, 1, target7@highesta
# CHECK-NEXT: ]
# CHECK-NEXT: Address: 0x0
# CHECK-NEXT: Offset:
-# CHECK-NEXT: Size: 72
+# CHECK-NEXT: Size: 80
# CHECK-NEXT: Link: 0
# CHECK-NEXT: Info: 0
# CHECK-NEXT: AddressAlignment: 4
@@ -82,10 +85,10 @@ addis 1, 1, target7@highesta
# CHECK-LE-NEXT: 0010: 44442138 1111213C 01802138 0110213C
# CHECK-BE-NEXT: 0020: 60218001 64211001 38210008 3C210000
# CHECK-LE-NEXT: 0020: 01802160 01102164 08002138 0000213C
-# CHECK-BE-NEXT: 0030: 38214321 3C214321 3821FFFF 3C211234
-# CHECK-LE-NEXT: 0030: 21432138 2143213C FFFF2138 3412213C
-# CHECK-BE-NEXT: 0040: 38210000 3C211235
-# CHECK-LE-NEXT: 0040: 00002138 3512213C
+# CHECK-BE-NEXT: 0030: 38214321 3C214321 38214321 3C214322
+# CHECK-LE-NEXT: 0030: 21432138 2143213C 21432138 2243213C
+# CHECK-BE-NEXT: 0040: 3821FFFF 3C211234 38210000 3C211235
+# CHECK-LE-NEXT: 0040: FFFF2138 3412213C 00002138 3512213C
# CHECK-NEXT: )
# CHECK-NEXT: }
diff --git a/llvm/test/MC/PowerPC/ppc64-fixups.s b/llvm/test/MC/PowerPC/ppc64-fixups.s
index 0b8375bf72f..c3412b06399 100644
--- a/llvm/test/MC/PowerPC/ppc64-fixups.s
+++ b/llvm/test/MC/PowerPC/ppc64-fixups.s
@@ -56,6 +56,15 @@
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_ADDR16_HA target 0x0
addis 3, 3, target@ha
+# CHECK-BE: addis 3, 3, target@higha # encoding: [0x3c,0x63,A,A]
+# CHECK-LE: addis 3, 3, target@higha # encoding: [A,A,0x63,0x3c]
+# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@higha, kind: fixup_ppc_half16
+# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@higha, kind: fixup_ppc_half16
+# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16_HIGHA target 0x0
+# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_ADDR16_HIGHA target 0x0
+
+ addis 3, 3, target@higha
+
# CHECK-BE: lis 3, target@ha # encoding: [0x3c,0x60,A,A]
# CHECK-LE: lis 3, target@ha # encoding: [A,A,0x60,0x3c]
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@ha, kind: fixup_ppc_half16
@@ -217,6 +226,14 @@ base:
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_ADDR16_HI target 0x0
oris 3, 3, target@h
+# CHECK-BE: oris 3, 3, target@high # encoding: [0x64,0x63,A,A]
+# CHECK-LE: oris 3, 3, target@high # encoding: [A,A,0x63,0x64]
+# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@high, kind: fixup_ppc_half16
+# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@high, kind: fixup_ppc_half16
+# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16_HIGH target 0x0
+# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_ADDR16_HIGH target 0x0
+ oris 3, 3, target@high
+
# CHECK-BE: ld 1, target@toc(2) # encoding: [0xe8,0x22,A,0bAAAAAA00]
# CHECK-LE: ld 1, target@toc(2) # encoding: [0bAAAAAA00,A,0x22,0xe8]
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@toc, kind: fixup_ppc_half16ds
OpenPOWER on IntegriCloud