xref: /llvm-project/llvm/test/MC/AArch64/adr.s (revision 5dde2bcdd172f4650e9f5ff31b338d948c69c6c0)
1// RUN: llvm-mc -triple aarch64-elf -filetype=obj %s -o - | llvm-objdump --no-print-imm-hex -d -r - | FileCheck %s
2
3// CHECK: adr x0, 0x64
4// CHECK-NEXT: adr x2, 0x4
5// CHECK-NEXT: R_AARCH64_ADR_PREL_LO21	Symbol
6// CHECK-NEXT: adr x3, 0x8
7// CHECK-NEXT: R_AARCH64_ADR_PREL_LO21	Symbol
8// CHECK-NEXT: adr x4, 0xc
9// CHECK-NEXT: R_AARCH64_ADR_PREL_LO21	Symbol+0xf1000
10// CHECK-NEXT: adr x5, 0x10
11// CHECK-NEXT: R_AARCH64_ADR_PREL_LO21	Symbol+0xf1000
12// CHECK-NEXT: adr x6, 0x14
13// CHECK-NEXT: R_AARCH64_ADR_PREL_LO21	Symbol+0xf1000
14
15  adr x0, 100
16  adr x2, Symbol
17  adr x3, Symbol + 0
18  adr x4, Symbol + 987136
19  adr x5, (0xffffffff000f1000 - 0xffffffff00000000 + Symbol)
20  adr x6, Symbol + (0xffffffff000f1000 - 0xffffffff00000000)
21
22// CHECK-NEXT: adrp x0, 0x0
23// CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21	Symbol
24// CHECK-NEXT: adrp x2, 0x0
25// CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21	Symbol
26// CHECK-NEXT: adrp x3, 0x0
27// CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21	Symbol+0xf1000
28// CHECK-NEXT: adrp x4, 0x0
29// CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21	Symbol+0xf1000
30// CHECK-NEXT: adrp x5, 0x0
31// CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21	Symbol+0xf1000
32
33  adrp x0, Symbol
34  adrp x2, Symbol + 0
35  adrp x3, Symbol + 987136
36  adrp x4, (0xffffffff000f1000 - 0xffffffff00000000 + Symbol)
37  adrp x5, Symbol + (0xffffffff000f1000 - 0xffffffff00000000)
38