diff options
| author | Sean Fertile <sfertile@ca.ibm.com> | 2018-06-15 19:47:11 +0000 |
|---|---|---|
| committer | Sean Fertile <sfertile@ca.ibm.com> | 2018-06-15 19:47:11 +0000 |
| commit | 80b8f82f179a31f7fbc0f3076ebb681fdda3e504 (patch) | |
| tree | 46c7e2c22af6e6af03054f64d976fe53a004a858 /llvm/test | |
| parent | 72aed5e5dc7126be84a0d90063b441b6406b73f7 (diff) | |
| download | bcm5719-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.s | 13 | ||||
| -rw-r--r-- | llvm/test/MC/PowerPC/ppc64-fixups.s | 17 |
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 |

