From: Fangrui Song Date: Wed, 16 Dec 2020 17:20:55 +0000 (-0800) Subject: [AArch64InstPrinter] Change printADRPLabel to print the target address in hexadecimal... X-Git-Tag: llvmorg-13-init~3203 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=66bcbdbc9c584becff35f6795cd2836a7a0141b2;p=platform%2Fupstream%2Fllvm.git [AArch64InstPrinter] Change printADRPLabel to print the target address in hexadecimal form Similar to D77853. Change ADRP to print the target address in hex, instead of the raw immediate. The behavior is similar to GNU objdump but we also include `0x`. Note: GNU objdump is not consistent whether or not to emit `0x` for different architectures. We try emitting 0x consistently for all targets. ``` GNU objdump: adrp x16, 10000000 Old llvm-objdump: adrp x16, #0 New llvm-objdump: adrp x16, 0x10000000 ``` `adrp Xd, 0x...` assembles to a relocation referencing `*ABS*+0x10000` which is not intended. We need to use a linker or use yaml2obj. The main test is `test/tools/llvm-objdump/ELF/AArch64/pcrel-address.yaml` Differential Revision: https://reviews.llvm.org/D93241 --- diff --git a/lld/test/COFF/arm64-delayimport.yaml b/lld/test/COFF/arm64-delayimport.yaml index 6b16a54..583103f 100644 --- a/lld/test/COFF/arm64-delayimport.yaml +++ b/lld/test/COFF/arm64-delayimport.yaml @@ -5,7 +5,7 @@ # RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefix DISASM # RUN: llvm-readobj --coff-imports %t.exe | FileCheck %s -check-prefix IMPORTS -# DISASM: 140001014: 11 00 00 d0 adrp x17, #8192 +# DISASM: 140001014: 11 00 00 d0 adrp x17, 0x140003000 # DISASM: 140001018: 31 22 00 91 add x17, x17, #8 # DISASM: 14000101c: 01 00 00 14 b 0x140001020 <.text+0x20> # DISASM: 140001020: fd 7b b3 a9 stp x29, x30, [sp, #-208]! @@ -19,7 +19,7 @@ # DISASM: 140001040: e4 97 04 ad stp q4, q5, [sp, #144] # DISASM: 140001044: e6 9f 05 ad stp q6, q7, [sp, #176] # DISASM: 140001048: e1 03 11 aa mov x1, x17 -# DISASM: 14000104c: 00 00 00 b0 adrp x0, #4096 +# DISASM: 14000104c: 00 00 00 b0 adrp x0, 0x140002000 # DISASM: 140001050: 00 00 00 91 add x0, x0, #0 # DISASM: 140001054: eb ff ff 97 bl 0x140001000 <.text> # DISASM: 140001058: f0 03 00 aa mov x16, x0 diff --git a/lld/test/COFF/arm64-import2.test b/lld/test/COFF/arm64-import2.test index b3fa638..1122ab8 100644 --- a/lld/test/COFF/arm64-import2.test +++ b/lld/test/COFF/arm64-import2.test @@ -19,10 +19,10 @@ # AFTER: 140001004: 06 00 00 94 bl 0x14000101c # AFTER: 140001008: c0 03 5f d6 ret # AFTER: 14000100c: ff cc cc cc -# AFTER: 140001010: 10 00 00 b0 adrp x16, #4096 +# AFTER: 140001010: 10 00 00 b0 adrp x16, 0x140002000 # AFTER: 140001014: 10 32 40 f9 ldr x16, [x16, #96] # AFTER: 140001018: 00 02 1f d6 br x16 -# AFTER: 14000101c: 10 00 00 b0 adrp x16, #4096 +# AFTER: 14000101c: 10 00 00 b0 adrp x16, 0x140002000 # AFTER: 140001020: 10 3a 40 f9 ldr x16, [x16, #112] # AFTER: 140001024: 00 02 1f d6 br x16 diff --git a/lld/test/COFF/arm64-relocs-imports.test b/lld/test/COFF/arm64-relocs-imports.test index 8682088..bdad54b 100644 --- a/lld/test/COFF/arm64-relocs-imports.test +++ b/lld/test/COFF/arm64-relocs-imports.test @@ -8,7 +8,7 @@ # BEFORE: Disassembly of section .text: # BEFORE-EMPTY: # BEFORE: 0: fe 0f 1f f8 str x30, [sp, #-16]! -# BEFORE: 4: 00 00 00 90 adrp x0, #0 +# BEFORE: 4: 00 00 00 90 adrp x0, 0x0 # BEFORE: 8: 00 08 00 91 add x0, x0, #2 # BEFORE: c: 00 00 00 94 bl 0xc # BEFORE: 10: 00 01 40 39 ldrb w0, [x8] @@ -30,7 +30,7 @@ # BEFORE: 50: 00 01 00 fd str d0, [x8] # BEFORE: 54: 00 01 80 3d str q0, [x8] # BEFORE: 58: 00 05 40 f9 ldr x0, [x8, #8] -# BEFORE: 5c: 20 1a 01 b0 adrp x0, #36982784 +# BEFORE: 5c: 20 1a 01 b0 adrp x0, 0x2345000 # BEFORE: 60: 00 fc 4f f9 ldr x0, [x0, #8184] # BEFORE: 64: e0 03 1f 2a mov w0, wzr # BEFORE: 68: fe 07 41 f8 ldr x30, [sp], #16 @@ -51,7 +51,7 @@ # AFTER: Disassembly of section .text: # AFTER-EMPTY: # AFTER: 140001000: fe 0f 1f f8 str x30, [sp, #-16]! -# AFTER: 140001004: 00 00 00 b0 adrp x0, #4096 +# AFTER: 140001004: 00 00 00 b0 adrp x0, 0x140002000 # AFTER: 140001008: 00 18 00 91 add x0, x0, #6 # AFTER: 14000100c: 25 00 00 94 bl 0x1400010a0 # AFTER: 140001010: 00 21 40 39 ldrb w0, [x8, #8] @@ -73,7 +73,7 @@ # AFTER: 140001050: 00 09 00 fd str d0, [x8, #16] # AFTER: 140001054: 00 05 80 3d str q0, [x8, #16] # AFTER: 140001058: 00 09 40 f9 ldr x0, [x8, #16] -# AFTER: 14000105c: 00 00 00 f0 adrp x0, #12288 +# AFTER: 14000105c: 00 00 00 f0 adrp x0, 0x140004000 # AFTER: 140001060: 00 fc 47 f9 ldr x0, [x0, #4088] # AFTER: 140001064: e0 03 1f 2a mov w0, wzr # AFTER: 140001068: fe 07 41 f8 ldr x30, [sp], #16 @@ -90,7 +90,7 @@ # AFTER: 140001094: 61 00 00 54 b.ne 0x1400010a0 # AFTER: 140001098: 40 00 00 36 tbz w0, #0, 0x1400010a0 # AFTER: 14000109c: 61 ff ff ff -# AFTER: 1400010a0: 10 00 00 b0 adrp x16, #4096 +# AFTER: 1400010a0: 10 00 00 b0 adrp x16, 0x140002000 # AFTER: 1400010a4: 10 2a 40 f9 ldr x16, [x16, #80] # AFTER: 1400010a8: 00 02 1f d6 br x16 diff --git a/lld/test/COFF/arm64-thunks.s b/lld/test/COFF/arm64-thunks.s index 9ddae62..4428bf79 100644 --- a/lld/test/COFF/arm64-thunks.s +++ b/lld/test/COFF/arm64-thunks.s @@ -29,14 +29,14 @@ func2: // DISASM: 0000000140001000 <.text>: // DISASM: 140001000: 40 00 00 36 tbz w0, #0, 0x140001008 <.text+0x8> // DISASM: 140001004: c0 03 5f d6 ret -// DISASM: 140001008: 50 00 00 90 adrp x16, #32768 +// DISASM: 140001008: 50 00 00 90 adrp x16, 0x140009000 // DISASM: 14000100c: 10 52 00 91 add x16, x16, #20 // DISASM: 140001010: 00 02 1f d6 br x16 // DISASM: 140009014: 60 00 00 36 tbz w0, #0, 0x140009020 <.text+0x8020> // DISASM: 140009018: c0 03 5f d6 ret -// DISASM: 140009020: 50 00 00 90 adrp x16, #32768 +// DISASM: 140009020: 50 00 00 90 adrp x16, 0x140011000 // DISASM: 140009024: 10 b2 00 91 add x16, x16, #44 // DISASM: 140009028: 00 02 1f d6 br x16 diff --git a/lld/test/ELF/aarch64-condb-reloc.s b/lld/test/ELF/aarch64-condb-reloc.s index 06c7b0a..0b90d5c 100644 --- a/lld/test/ELF/aarch64-condb-reloc.s +++ b/lld/test/ELF/aarch64-condb-reloc.s @@ -76,7 +76,7 @@ #DSO-EMPTY: #DSO-NEXT: <.plt>: #DSO-NEXT: 10370: stp x16, x30, [sp, #-16]! -#DSO-NEXT: 10374: adrp x16, #131072 +#DSO-NEXT: 10374: adrp x16, 0x30000 #DSO-NEXT: 10378: ldr x17, [x16, #1152] #DSO-NEXT: 1037c: add x16, x16, #1152 #DSO-NEXT: 10380: br x17 @@ -85,19 +85,19 @@ #DSO-NEXT: 1038c: nop #DSO-EMPTY: #DSO-NEXT: <_foo@plt>: -#DSO-NEXT: 10390: adrp x16, #131072 +#DSO-NEXT: 10390: adrp x16, 0x30000 #DSO-NEXT: 10394: ldr x17, [x16, #1160] #DSO-NEXT: 10398: add x16, x16, #1160 #DSO-NEXT: 1039c: br x17 #DSO-EMPTY: #DSO-NEXT: <_bar@plt>: -#DSO-NEXT: 103a0: adrp x16, #131072 +#DSO-NEXT: 103a0: adrp x16, 0x30000 #DSO-NEXT: 103a4: ldr x17, [x16, #1168] #DSO-NEXT: 103a8: add x16, x16, #1168 #DSO-NEXT: 103ac: br x17 #DSO-EMPTY: #DSO-NEXT: <_dah@plt>: -#DSO-NEXT: 103b0: adrp x16, #131072 +#DSO-NEXT: 103b0: adrp x16, 0x30000 #DSO-NEXT: 103b4: ldr x17, [x16, #1176] #DSO-NEXT: 103b8: add x16, x16, #1176 #DSO-NEXT: 103bc: br x17 diff --git a/lld/test/ELF/aarch64-copy.s b/lld/test/ELF/aarch64-copy.s index ba7c8af..591186f 100644 --- a/lld/test/ELF/aarch64-copy.s +++ b/lld/test/ELF/aarch64-copy.s @@ -67,7 +67,7 @@ _start: // S + A - P = 0x2303f0 + 0 - 0x21031c = 131284 // CODE-NEXT: 21031c: adr x1, #131284 // Page(S + A) - Page(P) = Page(0x230400) - Page(0x210320) = 131072 -// CODE-NEXT: 210320: adrp x2, #131072 +// CODE-NEXT: 210320: adrp x2, 0x230000 // (S + A) & 0xFFF = (0x230400 + 0) & 0xFFF = 1024 // CODE-NEXT: 210324: add x2, x2, #1024 diff --git a/lld/test/ELF/aarch64-cortex-a53-843419-address.s b/lld/test/ELF/aarch64-cortex-a53-843419-address.s index 186ff55..fcf5f40 100644 --- a/lld/test/ELF/aarch64-cortex-a53-843419-address.s +++ b/lld/test/ELF/aarch64-cortex-a53-843419-address.s @@ -38,7 +38,7 @@ // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at FF8 in unpatched output. // CHECK: : -// CHECK-NEXT: ff8: 20 00 00 d0 adrp x0, #24576 +// CHECK-NEXT: ff8: 20 00 00 d0 adrp x0, 0x6000 // CHECK-NEXT: ffc: 21 00 40 f9 ldr x1, [x1] // CHECK-NEXT: 1000: f9 0f 00 14 b 0x4fe4 // CHECK-NEXT: 1004: c0 03 5f d6 ret @@ -60,7 +60,7 @@ t3_ff8_ldr: $x.999: // CHECK-PRINT-NEXT: detected cortex-a53-843419 erratum sequence starting at 1FFC in unpatched output. // CHECK: : -// CHECK-NEXT: 1ffc: 20 00 00 b0 adrp x0, #20480 +// CHECK-NEXT: 1ffc: 20 00 00 b0 adrp x0, 0x6000 // CHECK-NEXT: 2000: 21 00 40 bd ldr s1, [x1] // CHECK-NEXT: 2004: fa 0b 00 14 b 0x4fec // CHECK-NEXT: 2008: c0 03 5f d6 ret @@ -97,7 +97,7 @@ t3_ff8_ldralldata: // CHECK-PRINT-NEXT: detected cortex-a53-843419 erratum sequence starting at 3FF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 3ff8: 00 00 00 f0 adrp x0, #12288 +// CHECK-NEXT: 3ff8: 00 00 00 f0 adrp x0, 0x6000 // CHECK-NEXT: 3ffc: 21 00 40 f9 ldr x1, [x1] // CHECK-NEXT: 4000: fd 03 00 14 b 0x4ff4 // CHECK-NEXT: 4004: c0 03 5f d6 ret @@ -129,7 +129,7 @@ t3_ff8_ldralldata: // CHECK-PRINT-NEXT: detected cortex-a53-843419 erratum sequence starting at 4FFC in unpatched output // CHECK: : -// CHECK-NEXT: 4ffc: 00 00 00 d0 adrp x0, #8192 +// CHECK-NEXT: 4ffc: 00 00 00 d0 adrp x0, 0x6000 // CHECK-NEXT: 5000: 21 00 00 f9 str x1, [x1] // CHECK-NEXT: 5004: fb 03 00 14 b 0x5ff0 // CHECK-NEXT: 5008: c0 03 5f d6 ret @@ -154,7 +154,7 @@ t3_ffc_str: //CHECK-PRINT-NEXT: detected cortex-a53-843419 erratum sequence starting at 5FF8 in unpatched output // CHECK: : -// CHECK-NEXT: 5ff8: 00 00 00 b0 adrp x0, #4096 +// CHECK-NEXT: 5ff8: 00 00 00 b0 adrp x0, 0x6000 // CHECK-NEXT: 5ffc: 21 00 00 f9 str x1, [x1] // CHECK-NEXT: 6000: 03 00 00 14 b 0x600c // CHECK-NEXT: 6004: c0 03 5f d6 ret diff --git a/lld/test/ELF/aarch64-cortex-a53-843419-large.s b/lld/test/ELF/aarch64-cortex-a53-843419-large.s index 35b2532..a1aafba 100644 --- a/lld/test/ELF/aarch64-cortex-a53-843419-large.s +++ b/lld/test/ELF/aarch64-cortex-a53-843419-large.s @@ -43,7 +43,7 @@ t3_ff8_ldr: ret // CHECK3: : -// CHECK3-NEXT: 211ff8: e0 00 04 f0 adrp x0, #134344704 +// CHECK3-NEXT: 211ff8: e0 00 04 f0 adrp x0, 0x8230000 // CHECK3-NEXT: 211ffc: 21 00 40 f9 ldr x1, [x1] // CHECK3-NEXT: 212000: 02 08 80 15 b 0x6214008 // CHECK3-NEXT: 212004: c0 03 5f d6 ret @@ -64,7 +64,7 @@ t3_ff8_str: ret // CHECK4: : -// CHECK4-NEXT: 4213ff8: e0 00 02 b0 adrp x0, #67227648 +// CHECK4-NEXT: 4213ff8: e0 00 02 b0 adrp x0, 0x8230000 // CHECK4-NEXT: 4213ffc: 21 00 40 f9 ldr x1, [x1] // CHECK4-NEXT: 4214000: 04 00 80 14 b 0x6214010 // CHECK4-NEXT: 4214004: c0 03 5f d6 ret @@ -103,7 +103,7 @@ t3_ffc_ldr: ret // CHECK7: : -// CHECK7-NEXT: 8211ffc: e0 00 00 f0 adrp x0, #126976 +// CHECK7-NEXT: 8211ffc: e0 00 00 f0 adrp x0, 0x8230000 // CHECK7-NEXT: 8212000: 21 00 40 f9 ldr x1, [x1] // CHECK7-NEXT: 8212004: 02 00 00 14 b 0x821200c // CHECK7-NEXT: 8212008: c0 03 5f d6 ret diff --git a/lld/test/ELF/aarch64-cortex-a53-843419-recognize.s b/lld/test/ELF/aarch64-cortex-a53-843419-recognize.s index 823c752..3d7aef7 100644 --- a/lld/test/ELF/aarch64-cortex-a53-843419-recognize.s +++ b/lld/test/ELF/aarch64-cortex-a53-843419-recognize.s @@ -30,13 +30,13 @@ // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 211FF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 211ff8: 60 02 00 f0 adrp x0, #323584 +// CHECK-NEXT: 211ff8: 60 02 00 f0 adrp x0, 0x260000 // CHECK-NEXT: 211ffc: 21 00 40 f9 ldr x1, [x1] // CHECK-FIX: 212000: 03 c8 00 14 b 0x24400c // CHECK-NOFIX: 212000: 00 00 40 f9 ldr x0, [x0] // CHECK-NEXT: 212004: c0 03 5f d6 ret // CHECK-RELOCATABLE: : -// CHECK-RELOCATABLE-NEXT: ff8: 00 00 00 90 adrp x0, #0 +// CHECK-RELOCATABLE-NEXT: ff8: 00 00 00 90 adrp x0, 0x0 // CHECK-RELOCATABLE-NEXT: ffc: 21 00 40 f9 ldr x1, [x1] // CHECK-RELOCATABLE-NEXT: 1000: 00 00 40 f9 ldr x0, [x0] // CHECK-RELOCATABLE-NEXT: 1004: c0 03 5f d6 ret @@ -54,7 +54,7 @@ t3_ff8_ldr: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 213FF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 213ff8: 60 02 00 b0 adrp x0, #315392 +// CHECK-NEXT: 213ff8: 60 02 00 b0 adrp x0, 0x260000 // CHECK-NEXT: 213ffc: 21 00 40 bd ldr s1, [x1] // CHECK-FIX: 214000: 05 c0 00 14 b 0x244014 // CHECK-NOFIX: 214000: 02 04 40 f9 ldr x2, [x0, #8] @@ -72,7 +72,7 @@ t3_ff8_ldrsimd: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 215FFC in unpatched output. // CHECK: : -// CHECK-NEXT: 215ffc: 40 02 00 f0 adrp x0, #307200 +// CHECK-NEXT: 215ffc: 40 02 00 f0 adrp x0, 0x260000 // CHECK-NEXT: 216000: 21 84 40 bc ldr s1, [x1], #8 // CHECK-FIX: 216004: 06 b8 00 14 b 0x24401c // CHECK-NOFIX: 216004: 03 08 40 f9 ldr x3, [x0, #16] @@ -90,7 +90,7 @@ t3_ffc_ldrpost: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 217FF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 217ff8: 40 02 00 b0 adrp x0, #299008 +// CHECK-NEXT: 217ff8: 40 02 00 b0 adrp x0, 0x260000 // CHECK-NEXT: 217ffc: 21 8c 00 bc str s1, [x1, #8]! // CHECK-FIX: 218000: 09 b0 00 14 b 0x244024 // CHECK-NOFIX: 218000: 02 0c 40 f9 ldr x2, [x0, #24] @@ -108,7 +108,7 @@ t3_ff8_strpre: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 219FFC in unpatched output. // CHECK: : -// CHECK-NEXT: 219ffc: 3c 02 00 f0 adrp x28, #290816 +// CHECK-NEXT: 219ffc: 3c 02 00 f0 adrp x28, 0x260000 // CHECK-NEXT: 21a000: 42 00 00 f9 str x2, [x2] // CHECK-FIX: 21a004: 0a a8 00 14 b 0x24402c // CHECK-NOFIX: 21a004: 9c 13 00 f9 str x28, [x28, #32] @@ -126,7 +126,7 @@ t3_ffc_str: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 21BFFC in unpatched output. // CHECK: : -// CHECK-NEXT: 21bffc: 3c 02 00 b0 adrp x28, #282624 +// CHECK-NEXT: 21bffc: 3c 02 00 b0 adrp x28, 0x260000 // CHECK-NEXT: 21c000: 44 00 00 b9 str w4, [x2] // CHECK-FIX: 21c004: 0c a0 00 14 b 0x244034 // CHECK-NOFIX: 21c004: 84 17 00 f9 str x4, [x28, #40] @@ -144,7 +144,7 @@ t3_ffc_strsimd: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 21DFF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 21dff8: 1d 02 00 f0 adrp x29, #274432 +// CHECK-NEXT: 21dff8: 1d 02 00 f0 adrp x29, 0x260000 // CHECK-NEXT: 21dffc: 41 08 40 38 ldtrb w1, [x2] // CHECK-FIX: 21e000: 0f 98 00 14 b 0x24403c // CHECK-NOFIX: 21e000: bd 03 40 f9 ldr x29, [x29] @@ -162,7 +162,7 @@ t3_ff8_ldrunpriv: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 21FFFC in unpatched output. // CHECK: : -// CHECK-NEXT: 21fffc: 1d 02 00 b0 adrp x29, #266240 +// CHECK-NEXT: 21fffc: 1d 02 00 b0 adrp x29, 0x260000 // CHECK-NEXT: 220000: 42 40 40 b8 ldur w2, [x2, #4] // CHECK-FIX: 220004: 10 90 00 14 b 0x244044 // CHECK-NOFIX: 220004: bd 07 40 f9 ldr x29, [x29, #8] @@ -179,7 +179,7 @@ t3_ffc_ldur: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 221FFC in unpatched output. // CHECK: : -// CHECK-NEXT: 221ffc: f2 01 00 f0 adrp x18, #258048 +// CHECK-NEXT: 221ffc: f2 01 00 f0 adrp x18, 0x260000 // CHECK-NEXT: 222000: 43 40 00 78 sturh w3, [x2, #4] // CHECK-FIX: 222004: 12 88 00 14 b 0x24404c // CHECK-NOFIX: 222004: 41 0a 40 f9 ldr x1, [x18, #16] @@ -197,7 +197,7 @@ t3_ffc_sturh: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 223FF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 223ff8: f2 01 00 b0 adrp x18, #249856 +// CHECK-NEXT: 223ff8: f2 01 00 b0 adrp x18, 0x260000 // CHECK-NEXT: 223ffc: e3 ff ff 58 ldr x3, 0x223ff8 // CHECK-FIX: 224000: 15 80 00 14 b 0x244054 // CHECK-NOFIX: 224000: 52 0e 40 f9 ldr x18, [x18, #24] @@ -215,7 +215,7 @@ t3_ff8_literal: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 225FFC in unpatched output. // CHECK: : -// CHECK-NEXT: 225ffc: cf 01 00 f0 adrp x15, #241664 +// CHECK-NEXT: 225ffc: cf 01 00 f0 adrp x15, 0x260000 // CHECK-NEXT: 226000: 43 68 61 f8 ldr x3, [x2, x1] // CHECK-FIX: 226004: 16 78 00 14 b 0x24405c // CHECK-NOFIX: 226004: ea 11 40 f9 ldr x10, [x15, #32] @@ -233,7 +233,7 @@ t3_ffc_register: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 227FF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 227ff8: d0 01 00 b0 adrp x16, #233472 +// CHECK-NEXT: 227ff8: d0 01 00 b0 adrp x16, 0x260000 // CHECK-NEXT: 227ffc: 61 08 00 a9 stp x1, x2, [x3] // CHECK-FIX: 228000: 19 70 00 14 b 0x244064 // CHECK-NOFIX: 228000: 0d 16 40 f9 ldr x13, [x16, #40] @@ -251,7 +251,7 @@ t3_ff8_stp: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 229FFC in unpatched output. // CHECK: : -// CHECK-NEXT: 229ffc: a7 01 00 f0 adrp x7, #225280 +// CHECK-NEXT: 229ffc: a7 01 00 f0 adrp x7, 0x260000 // CHECK-NEXT: 22a000: 61 08 00 a8 stnp x1, x2, [x3] // CHECK-FIX: 22a004: 1a 68 00 14 b 0x24406c // CHECK-NOFIX: 22a004: e9 0c 40 f9 ldr x9, [x7, #24] @@ -269,7 +269,7 @@ t3_ffc_stnp: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 22BFFC in unpatched output. // CHECK: : -// CHECK-NEXT: 22bffc: b7 01 00 b0 adrp x23, #217088 +// CHECK-NEXT: 22bffc: b7 01 00 b0 adrp x23, 0x260000 // CHECK-NEXT: 22c000: 20 04 82 0d st1 { v0.b }[1], [x1], x2 // CHECK-FIX: 22c004: 1c 60 00 14 b 0x244074 // CHECK-NOFIX: 22c004: f6 12 40 f9 ldr x22, [x23, #32] @@ -287,7 +287,7 @@ t3_ffc_st1singlepost: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 22DFF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 22dff8: 97 01 00 f0 adrp x23, #208896 +// CHECK-NEXT: 22dff8: 97 01 00 f0 adrp x23, 0x260000 // CHECK-NEXT: 22dffc: 20 a0 00 4c st1 { v0.16b, v1.16b }, [x1] // CHECK-FIX: 22e000: 1f 58 00 14 b 0x24407c // CHECK-NOFIX: 22e000: f8 16 40 f9 ldr x24, [x23, #40] @@ -305,7 +305,7 @@ t3_ff8_st1multiple: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 22FFF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 22fff8: 80 01 00 b0 adrp x0, #200704 +// CHECK-NEXT: 22fff8: 80 01 00 b0 adrp x0, 0x260000 // CHECK-NEXT: 22fffc: 21 00 40 f9 ldr x1, [x1] // CHECK-NEXT: 230000: 42 00 00 8b add x2, x2, x0 // CHECK-FIX: 230004: 20 50 00 14 b 0x244084 @@ -325,7 +325,7 @@ t4_ff8_ldr: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 231FFC in unpatched output. // CHECK: : -// CHECK-NEXT: 231ffc: 7c 01 00 f0 adrp x28, #192512 +// CHECK-NEXT: 231ffc: 7c 01 00 f0 adrp x28, 0x260000 // CHECK-NEXT: 232000: 42 00 00 f9 str x2, [x2] // CHECK-NEXT: 232004: 20 00 02 cb sub x0, x1, x2 // CHECK-FIX: 232008: 21 48 00 14 b 0x24408c @@ -345,7 +345,7 @@ t4_ffc_str: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 233FF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 233ff8: 70 01 00 b0 adrp x16, #184320 +// CHECK-NEXT: 233ff8: 70 01 00 b0 adrp x16, 0x260000 // CHECK-NEXT: 233ffc: 61 08 00 a9 stp x1, x2, [x3] // CHECK-NEXT: 234000: 03 7e 10 9b mul x3, x16, x16 // CHECK-FIX: 234004: 24 40 00 14 b 0x244094 @@ -365,7 +365,7 @@ t4_ff8_stp: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 235FF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 235ff8: 50 01 00 f0 adrp x16, #176128 +// CHECK-NEXT: 235ff8: 50 01 00 f0 adrp x16, 0x260000 // CHECK-NEXT: 235ffc: 61 08 81 a9 stp x1, x2, [x3, #16]! // CHECK-NEXT: 236000: 03 7e 10 9b mul x3, x16, x16 // CHECK-FIX: 236004: 26 38 00 14 b 0x24409c @@ -385,7 +385,7 @@ t4_ff8_stppre: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 237FF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 237ff8: 50 01 00 b0 adrp x16, #167936 +// CHECK-NEXT: 237ff8: 50 01 00 b0 adrp x16, 0x260000 // CHECK-NEXT: 237ffc: 61 08 81 a8 stp x1, x2, [x3], #16 // CHECK-NEXT: 238000: 03 7e 10 9b mul x3, x16, x16 // CHECK-FIX: 238004: 28 30 00 14 b 0x2440a4 @@ -405,7 +405,7 @@ t4_ff8_stppost: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 239FFC in unpatched output. // CHECK: : -// CHECK-NEXT: 239ffc: 30 01 00 f0 adrp x16, #159744 +// CHECK-NEXT: 239ffc: 30 01 00 f0 adrp x16, 0x260000 // CHECK-NEXT: 23a000: 61 08 00 ad stp q1, q2, [x3] // CHECK-NEXT: 23a004: 03 7e 10 9b mul x3, x16, x16 // CHECK-FIX: 23a008: 29 28 00 14 b 0x2440ac @@ -425,7 +425,7 @@ t4_ffc_stpsimd: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 23BFFC in unpatched output. // CHECK: : -// CHECK-NEXT: 23bffc: 27 01 00 b0 adrp x7, #151552 +// CHECK-NEXT: 23bffc: 27 01 00 b0 adrp x7, 0x260000 // CHECK-NEXT: 23c000: 61 08 00 a8 stnp x1, x2, [x3] // CHECK-NEXT: 23c004: 1f 20 03 d5 nop // CHECK-FIX: 23c008: 2b 20 00 14 b 0x2440b4 @@ -445,7 +445,7 @@ t4_ffc_stnp: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 23DFFC in unpatched output. // CHECK: : -// CHECK-NEXT: 23dffc: 18 01 00 f0 adrp x24, #143360 +// CHECK-NEXT: 23dffc: 18 01 00 f0 adrp x24, 0x260000 // CHECK-NEXT: 23e000: 20 80 00 4d st1 { v0.s }[2], [x1] // CHECK-NEXT: 23e004: f6 06 40 f9 ldr x22, [x23, #8] // CHECK-FIX: 23e008: 2d 18 00 14 b 0x2440bc @@ -465,7 +465,7 @@ t4_ffc_st1: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 23FFF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 23fff8: 00 01 00 b0 adrp x0, #135168 +// CHECK-NEXT: 23fff8: 00 01 00 b0 adrp x0, 0x260000 // CHECK-NEXT: 23fffc: 20 70 82 4c st1 { v0.16b }, [x1], x2 // CHECK-FIX: 240000: 31 10 00 14 b 0x2440c4 // CHECK-NOFIX: 240000: 01 08 40 f9 ldr x1, [x0, #16] @@ -485,7 +485,7 @@ t3_ff8_ldr_once: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 241FF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 241ff8: e0 00 00 f0 adrp x0, #126976 +// CHECK-NEXT: 241ff8: e0 00 00 f0 adrp x0, 0x260000 // CHECK-NEXT: 241ffc: 03 7c 5f c8 ldxr x3, [x0] // CHECK-FIX: 242000: 33 08 00 14 b 0x2440cc // CHECK-NOFIX: 242000: 01 08 40 f9 ldr x1, [x0, #16] @@ -505,7 +505,7 @@ t3_ff8_ldxr: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 243FF8 in unpatched output. // CHECK: : -// CHECK-NEXT: 243ff8: e0 00 00 b0 adrp x0, #118784 +// CHECK-NEXT: 243ff8: e0 00 00 b0 adrp x0, 0x260000 // CHECK-NEXT: 243ffc: 03 7c 04 c8 stxr w4, x3, [x0] // CHECK-FIX: 244000: 35 00 00 14 b 0x2440d4 // CHECK-NOFIX: 244000: 01 08 40 f9 ldr x1, [x0, #16] diff --git a/lld/test/ELF/aarch64-cortex-a53-843419-thunk.s b/lld/test/ELF/aarch64-cortex-a53-843419-thunk.s index 998175e..290fc71 100644 --- a/lld/test/ELF/aarch64-cortex-a53-843419-thunk.s +++ b/lld/test/ELF/aarch64-cortex-a53-843419-thunk.s @@ -39,7 +39,7 @@ t3_ff8_ldr: // CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 10FF8 in unpatched output. // CHECK: 0000000000010ff8 : -// CHECK-NEXT: adrp x0, #134217728 +// CHECK-NEXT: adrp x0, 0x8010000 // CHECK-NEXT: ldr x1, [x1] // CHECK-NEXT: b 0x11008 // CHECK-NEXT: ret diff --git a/lld/test/ELF/aarch64-feature-bti.s b/lld/test/ELF/aarch64-feature-bti.s index f4fb701..a66aced 100644 --- a/lld/test/ELF/aarch64-feature-bti.s +++ b/lld/test/ELF/aarch64-feature-bti.s @@ -22,7 +22,7 @@ # NOBTI: Disassembly of section .plt: # NOBTI: 00000000000102d0 <.plt>: # NOBTI-NEXT: 102d0: stp x16, x30, [sp, #-16]! -# NOBTI-NEXT: 102d4: adrp x16, #131072 +# NOBTI-NEXT: 102d4: adrp x16, 0x30000 # NOBTI-NEXT: 102d8: ldr x17, [x16, #960] # NOBTI-NEXT: 102dc: add x16, x16, #960 # NOBTI-NEXT: 102e0: br x17 @@ -30,7 +30,7 @@ # NOBTI-NEXT: 102e8: nop # NOBTI-NEXT: 102ec: nop # NOBTI: 00000000000102f0 : -# NOBTI-NEXT: 102f0: adrp x16, #131072 +# NOBTI-NEXT: 102f0: adrp x16, 0x30000 # NOBTI-NEXT: 102f4: ldr x17, [x16, #968] # NOBTI-NEXT: 102f8: add x16, x16, #968 # NOBTI-NEXT: 102fc: br x17 @@ -64,14 +64,14 @@ # BTISO: 0000000000010360 <.plt>: # BTISO-NEXT: 10360: bti c # BTISO-NEXT: stp x16, x30, [sp, #-16]! -# BTISO-NEXT: adrp x16, #131072 +# BTISO-NEXT: adrp x16, 0x30000 # BTISO-NEXT: ldr x17, [x16, #1136] # BTISO-NEXT: add x16, x16, #1136 # BTISO-NEXT: br x17 # BTISO-NEXT: nop # BTISO-NEXT: nop # BTISO: 0000000000010380 : -# BTISO-NEXT: 10380: adrp x16, #131072 +# BTISO-NEXT: 10380: adrp x16, 0x30000 # BTISO-NEXT: ldr x17, [x16, #1144] # BTISO-NEXT: add x16, x16, #1144 # BTISO-NEXT: br x17 @@ -98,7 +98,7 @@ # EXECBTI: 0000000000210350 <.plt>: # EXECBTI-NEXT: 210350: bti c # EXECBTI-NEXT: stp x16, x30, [sp, #-16]! -# EXECBTI-NEXT: adrp x16, #131072 +# EXECBTI-NEXT: adrp x16, 0x230000 # EXECBTI-NEXT: ldr x17, [x16, #1160] # EXECBTI-NEXT: add x16, x16, #1160 # EXECBTI-NEXT: br x17 @@ -106,7 +106,7 @@ # EXECBTI-NEXT: nop # EXECBTI: 0000000000210370 : # EXECBTI-NEXT: 210370: bti c -# EXECBTI-NEXT: adrp x16, #131072 +# EXECBTI-NEXT: adrp x16, 0x230000 # EXECBTI-NEXT: ldr x17, [x16, #1168] # EXECBTI-NEXT: add x16, x16, #1168 # EXECBTI-NEXT: br x17 @@ -126,7 +126,7 @@ # PIE: 0000000000010350 <.plt>: # PIE-NEXT: 10350: bti c # PIE-NEXT: stp x16, x30, [sp, #-16]! -# PIE-NEXT: adrp x16, #131072 +# PIE-NEXT: adrp x16, 0x30000 # PIE-NEXT: ldr x17, [x16, #1176] # PIE-NEXT: add x16, x16, #1176 # PIE-NEXT: br x17 @@ -134,7 +134,7 @@ # PIE-NEXT: nop # PIE: 0000000000010370 : # PIE-NEXT: 10370: bti c -# PIE-NEXT: adrp x16, #131072 +# PIE-NEXT: adrp x16, 0x30000 # PIE-NEXT: ldr x17, [x16, #1184] # PIE-NEXT: add x16, x16, #1184 # PIE-NEXT: br x17 @@ -156,7 +156,7 @@ # NOEX: Disassembly of section .plt: # NOEX: 00000000002102f0 <.plt>: # NOEX-NEXT: 2102f0: stp x16, x30, [sp, #-16]! -# NOEX-NEXT: adrp x16, #131072 +# NOEX-NEXT: adrp x16, 0x230000 # NOEX-NEXT: ldr x17, [x16, #1024] # NOEX-NEXT: add x16, x16, #1024 # NOEX-NEXT: br x17 @@ -164,7 +164,7 @@ # NOEX-NEXT: nop # NOEX-NEXT: nop # NOEX: 0000000000210310 : -# NOEX-NEXT: 210310: adrp x16, #131072 +# NOEX-NEXT: 210310: adrp x16, 0x230000 # NOEX-NEXT: ldr x17, [x16, #1032] # NOEX-NEXT: add x16, x16, #1032 # NOEX-NEXT: br x17 @@ -191,7 +191,7 @@ # FORCE: 0000000000210380 <.plt>: # FORCE-NEXT: 210380: bti c # FORCE-NEXT: stp x16, x30, [sp, #-16]! -# FORCE-NEXT: adrp x16, #131072 +# FORCE-NEXT: adrp x16, 0x230000 # FORCE-NEXT: ldr x17, [x16, #1192] # FORCE-NEXT: add x16, x16, #1192 # FORCE-NEXT: br x17 @@ -199,7 +199,7 @@ # FORCE-NEXT: nop # FORCE: 00000000002103a0 : # FORCE-NEXT: 2103a0: bti c -# FORCE-NEXT: adrp x16, #131072 +# FORCE-NEXT: adrp x16, 0x230000 # FORCE-NEXT: ldr x17, [x16, #1200] # FORCE-NEXT: add x16, x16, #1200 # FORCE-NEXT: br x17 diff --git a/lld/test/ELF/aarch64-feature-btipac.s b/lld/test/ELF/aarch64-feature-btipac.s index e5d8abea..653bb05 100644 --- a/lld/test/ELF/aarch64-feature-btipac.s +++ b/lld/test/ELF/aarch64-feature-btipac.s @@ -24,14 +24,14 @@ # BTIPACSO: 0000000000010360 <.plt>: # BTIPACSO-NEXT: 10360: bti c # BTIPACSO-NEXT: stp x16, x30, [sp, #-16]! -# BTIPACSO-NEXT: adrp x16, #131072 +# BTIPACSO-NEXT: adrp x16, 0x30000 # BTIPACSO-NEXT: ldr x17, [x16, #1136] # BTIPACSO-NEXT: add x16, x16, #1136 # BTIPACSO-NEXT: br x17 # BTIPACSO-NEXT: nop # BTIPACSO-NEXT: nop # BTIPACSO: 0000000000010380 : -# BTIPACSO-NEXT: 10380: adrp x16, #131072 +# BTIPACSO-NEXT: 10380: adrp x16, 0x30000 # BTIPACSO-NEXT: ldr x17, [x16, #1144] # BTIPACSO-NEXT: add x16, x16, #1144 # BTIPACSO-NEXT: br x17 @@ -61,7 +61,7 @@ # BTIPACEX: 0000000000210380 <.plt>: # BTIPACEX-NEXT: 210380: bti c # BTIPACEX-NEXT: stp x16, x30, [sp, #-16]! -# BTIPACEX-NEXT: adrp x16, #131072 +# BTIPACEX-NEXT: adrp x16, 0x230000 # BTIPACEX-NEXT: ldr x17, [x16, #1192] # BTIPACEX-NEXT: add x16, x16, #1192 # BTIPACEX-NEXT: br x17 @@ -69,7 +69,7 @@ # BTIPACEX-NEXT: nop # BTIPACEX: 00000000002103a0 : # BTIPACEX-NEXT: 2103a0: bti c -# BTIPACEX-NEXT: adrp x16, #131072 +# BTIPACEX-NEXT: adrp x16, 0x230000 # BTIPACEX-NEXT: ldr x17, [x16, #1200] # BTIPACEX-NEXT: add x16, x16, #1200 # BTIPACEX-NEXT: br x17 @@ -93,7 +93,7 @@ # EX: Disassembly of section .plt: # EX: 00000000002102f0 <.plt>: # EX-NEXT: 2102f0: stp x16, x30, [sp, #-16]! -# EX-NEXT: adrp x16, #131072 +# EX-NEXT: adrp x16, 0x230000 # EX-NEXT: ldr x17, [x16, #1024] # EX-NEXT: add x16, x16, #1024 # EX-NEXT: br x17 @@ -101,7 +101,7 @@ # EX-NEXT: nop # EX-NEXT: nop # EX: 0000000000210310 : -# EX: 210310: adrp x16, #131072 +# EX: 210310: adrp x16, 0x230000 # EX-NEXT: ldr x17, [x16, #1032] # EX-NEXT: add x16, x16, #1032 # EX-NEXT: br x17 @@ -155,7 +155,7 @@ func1: # BTIPACEX2: 0000000000210380 <.plt>: # BTIPACEX2-NEXT: 210380: bti c # BTIPACEX2-NEXT: stp x16, x30, [sp, #-16]! -# BTIPACEX2-NEXT: adrp x16, #131072 +# BTIPACEX2-NEXT: adrp x16, 0x230000 # BTIPACEX2-NEXT: ldr x17, [x16, #1208] # BTIPACEX2-NEXT: add x16, x16, #1208 # BTIPACEX2-NEXT: br x17 @@ -163,11 +163,11 @@ func1: # BTIPACEX2-NEXT: nop # BTIPACEX2: 00000000002103a0 : # BTIPACEX2-NEXT: 2103a0: bti c -# BTIPACEX2-NEXT: adrp x16, #131072 +# BTIPACEX2-NEXT: adrp x16, 0x230000 # BTIPACEX2-NEXT: ldr x17, [x16, #1216] # BTIPACEX2-NEXT: add x16, x16, #1216 # BTIPACEX2-NEXT: autia1716 # BTIPACEX2-NEXT: br x17 # BTIPACDYN2: 0x0000000070000001 (AARCH64_BTI_PLT) -# BTIPACDYN2-NEXT: 0x0000000070000003 (AARCH64_PAC_PLT) \ No newline at end of file +# BTIPACDYN2-NEXT: 0x0000000070000003 (AARCH64_PAC_PLT) diff --git a/lld/test/ELF/aarch64-feature-pac.s b/lld/test/ELF/aarch64-feature-pac.s index 8b5182f..4bdba69 100644 --- a/lld/test/ELF/aarch64-feature-pac.s +++ b/lld/test/ELF/aarch64-feature-pac.s @@ -19,7 +19,7 @@ # NOPAC: Disassembly of section .plt: # NOPAC: 00000000000102d0 <.plt>: # NOPAC-NEXT: 102d0: stp x16, x30, [sp, #-16]! -# NOPAC-NEXT: adrp x16, #131072 +# NOPAC-NEXT: adrp x16, 0x30000 # NOPAC-NEXT: ldr x17, [x16, #960] # NOPAC-NEXT: add x16, x16, #960 # NOPAC-NEXT: br x17 @@ -27,7 +27,7 @@ # NOPAC-NEXT: nop # NOPAC-NEXT: nop # NOPAC: 00000000000102f0 : -# NOPAC-NEXT: 102f0: adrp x16, #131072 +# NOPAC-NEXT: 102f0: adrp x16, 0x30000 # NOPAC-NEXT: ldr x17, [x16, #968] # NOPAC-NEXT: add x16, x16, #968 # NOPAC-NEXT: br x17 @@ -54,7 +54,7 @@ # PACSO: Disassembly of section .plt: # PACSO: 0000000000010360 <.plt>: # PACSO-NEXT: 10360: stp x16, x30, [sp, #-16]! -# PACSO-NEXT: adrp x16, #131072 +# PACSO-NEXT: adrp x16, 0x30000 # PACSO-NEXT: ldr x17, [x16, #1120] # PACSO-NEXT: add x16, x16, #1120 # PACSO-NEXT: br x17 @@ -62,7 +62,7 @@ # PACSO-NEXT: nop # PACSO-NEXT: nop # PACSO: 0000000000010380 : -# PACSO-NEXT: 10380: adrp x16, #131072 +# PACSO-NEXT: 10380: adrp x16, 0x30000 # PACSO-NEXT: ldr x17, [x16, #1128] # PACSO-NEXT: add x16, x16, #1128 # PACSO-NEXT: br x17 @@ -95,7 +95,7 @@ # PACPLT: Disassembly of section .plt: # PACPLT: 0000000000210380 <.plt>: # PACPLT-NEXT: 210380: stp x16, x30, [sp, #-16]! -# PACPLT-NEXT: adrp x16, #131072 +# PACPLT-NEXT: adrp x16, 0x230000 # PACPLT-NEXT: ldr x17, [x16, #1192] # PACPLT-NEXT: add x16, x16, #1192 # PACPLT-NEXT: br x17 @@ -103,7 +103,7 @@ # PACPLT-NEXT: nop # PACPLT-NEXT: nop # PACPLT: 00000000002103a0 : -# PACPLT-NEXT: 2103a0: adrp x16, #131072 +# PACPLT-NEXT: 2103a0: adrp x16, 0x230000 # PACPLT-NEXT: ldr x17, [x16, #1200] # PACPLT-NEXT: add x16, x16, #1200 # PACPLT-NEXT: autia1716 diff --git a/lld/test/ELF/aarch64-fpic-got.s b/lld/test/ELF/aarch64-fpic-got.s index 4f46cea..091fb84 100644 --- a/lld/test/ELF/aarch64-fpic-got.s +++ b/lld/test/ELF/aarch64-fpic-got.s @@ -17,7 +17,7 @@ ## page(0x220320) - page(0x210000) = 65536 ## page(0x220320) & 0xff8 = 800 # DIS: <_start>: -# DIS-NEXT: 210258: adrp x0, #65536 +# DIS-NEXT: 210258: adrp x0, 0x220000 # DIS-NEXT: 21025c: ldr x0, [x0, #800] .globl _start diff --git a/lld/test/ELF/aarch64-gnu-ifunc-address.s b/lld/test/ELF/aarch64-gnu-ifunc-address.s index 36c3f5a..46a914f 100644 --- a/lld/test/ELF/aarch64-gnu-ifunc-address.s +++ b/lld/test/ELF/aarch64-gnu-ifunc-address.s @@ -22,7 +22,7 @@ main: ret # CHECK: 0000000000010284
: ## myfunc's got entry = page(0x20330)-page(0x10284) + 0x330 = 65536 + 816 -# CHECK-NEXT: 10284: adrp x8, #65536 +# CHECK-NEXT: 10284: adrp x8, 0x20000 # CHECK-NEXT: 10288: ldr x8, [x8, #816] # CHECK-NEXT: 1028c: ret diff --git a/lld/test/ELF/aarch64-gnu-ifunc-nonpreemptable.s b/lld/test/ELF/aarch64-gnu-ifunc-nonpreemptable.s index 9f8a593..284d9a8 100644 --- a/lld/test/ELF/aarch64-gnu-ifunc-nonpreemptable.s +++ b/lld/test/ELF/aarch64-gnu-ifunc-nonpreemptable.s @@ -33,7 +33,7 @@ main: # PDE: : # PDE-NEXT: 210170: ret # PDE:
: -# PDE-NEXT: 210174: adrp x8, #0 +# PDE-NEXT: 210174: adrp x8, 0x210000 # PDE-NEXT: 210178: add x8, x8, #384 # PDE-NEXT: 21017c: ret # PDE-EMPTY: @@ -41,7 +41,7 @@ main: # PDE-EMPTY: # PDE-NEXT: : ## page(.got.plt) - page(0x210010) = 65536 -# PDE-NEXT: 210180: adrp x16, #65536 +# PDE-NEXT: 210180: adrp x16, 0x220000 # PDE-NEXT: 210184: ldr x17, [x16, #400] # PDE-NEXT: 210188: add x16, x16, #400 # PDE-NEXT: 21018c: br x17 @@ -55,14 +55,14 @@ main: # PIE: : # PIE-NEXT: 10260: ret # PIE:
: -# PIE-NEXT: 10264: adrp x8, #0 +# PIE-NEXT: 10264: adrp x8, 0x10000 # PIE-NEXT: 10268: add x8, x8, #624 # PIE-NEXT: 1026c: ret # PIE-EMPTY: # PIE-NEXT: Disassembly of section .iplt: # PIE-EMPTY: # PIE-NEXT: : -# PIE-NEXT: 10270: adrp x16, #131072 +# PIE-NEXT: 10270: adrp x16, 0x30000 # PIE-NEXT: 10274: ldr x17, [x16, #896] # PIE-NEXT: 10278: add x16, x16, #896 # PIE-NEXT: 1027c: br x17 diff --git a/lld/test/ELF/aarch64-gnu-ifunc-plt.s b/lld/test/ELF/aarch64-gnu-ifunc-plt.s index a74965a..fdd8e6e 100644 --- a/lld/test/ELF/aarch64-gnu-ifunc-plt.s +++ b/lld/test/ELF/aarch64-gnu-ifunc-plt.s @@ -48,7 +48,7 @@ // DISASM-EMPTY: // DISASM-NEXT: <.plt>: // DISASM-NEXT: 2102f0: stp x16, x30, [sp, #-16]! -// DISASM-NEXT: 2102f4: adrp x16, #131072 +// DISASM-NEXT: 2102f4: adrp x16, 0x230000 // DISASM-NEXT: 2102f8: ldr x17, [x16, #1104] // DISASM-NEXT: 2102fc: add x16, x16, #1104 // DISASM-NEXT: 210300: br x17 @@ -57,13 +57,13 @@ // DISASM-NEXT: 21030c: nop // DISASM-EMPTY: // DISASM-NEXT: : -// DISASM-NEXT: 210310: adrp x16, #131072 +// DISASM-NEXT: 210310: adrp x16, 0x230000 // DISASM-NEXT: 210314: ldr x17, [x16, #1112] // DISASM-NEXT: 210318: add x16, x16, #1112 // DISASM-NEXT: 21031c: br x17 // DISASM-EMPTY: // DISASM-NEXT: : -// DISASM-NEXT: 210320: adrp x16, #131072 +// DISASM-NEXT: 210320: adrp x16, 0x230000 // DISASM-NEXT: 210324: ldr x17, [x16, #1120] // DISASM-NEXT: 210328: add x16, x16, #1120 // DISASM-NEXT: 21032c: br x17 @@ -71,11 +71,11 @@ // DISASM-NEXT: Disassembly of section .iplt: // DISASM-EMPTY: // DISASM-NEXT: <.iplt>: -// DISASM-NEXT: 210330: adrp x16, #131072 +// DISASM-NEXT: 210330: adrp x16, 0x230000 // DISASM-NEXT: 210334: ldr x17, [x16, #1128] // DISASM-NEXT: 210338: add x16, x16, #1128 // DISASM-NEXT: 21033c: br x17 -// DISASM-NEXT: 210340: adrp x16, #131072 +// DISASM-NEXT: 210340: adrp x16, 0x230000 // DISASM-NEXT: 210344: ldr x17, [x16, #1136] // DISASM-NEXT: 210348: add x16, x16, #1136 // DISASM-NEXT: 21034c: br x17 diff --git a/lld/test/ELF/aarch64-gnu-ifunc.s b/lld/test/ELF/aarch64-gnu-ifunc.s index e036517..e0a51aa 100644 --- a/lld/test/ELF/aarch64-gnu-ifunc.s +++ b/lld/test/ELF/aarch64-gnu-ifunc.s @@ -115,11 +115,11 @@ // DISASM-NEXT: Disassembly of section .iplt: // DISASM-EMPTY: // DISASM-NEXT: <.iplt>: -// DISASM-NEXT: 2101a0: adrp x16, #65536 +// DISASM-NEXT: 2101a0: adrp x16, 0x220000 // DISASM-NEXT: 2101a4: ldr x17, [x16, #448] // DISASM-NEXT: 2101a8: add x16, x16, #448 // DISASM-NEXT: 2101ac: br x17 -// DISASM-NEXT: 2101b0: adrp x16, #65536 +// DISASM-NEXT: 2101b0: adrp x16, 0x220000 // DISASM-NEXT: 2101b4: ldr x17, [x16, #456] // DISASM-NEXT: 2101b8: add x16, x16, #456 // DISASM-NEXT: 2101bc: br x17 diff --git a/lld/test/ELF/aarch64-gnu-ifunc2.s b/lld/test/ELF/aarch64-gnu-ifunc2.s index 89b7625..b70c38c 100644 --- a/lld/test/ELF/aarch64-gnu-ifunc2.s +++ b/lld/test/ELF/aarch64-gnu-ifunc2.s @@ -12,7 +12,7 @@ # CHECK:
: # .got.plt - page(0x210174) = 0x220190 - 0x210000 = 0x10190 -# CHECK-NEXT: 210174: adrp x8, #0x10000 +# CHECK-NEXT: 210174: adrp x8, 0x220000 # CHECK-NEXT: 210178: ldr x8, [x8, #0x190] # CHECK-NEXT: 21017c: ret @@ -20,7 +20,7 @@ # CHECK-EMPTY: # CHECK-NEXT: <.iplt>: # .got.plt - page(0x210180) = 0x220190 - 0x210000 = 0x10190 -# CHECK-NEXT: 210180: adrp x16, #0x10000 +# CHECK-NEXT: 210180: adrp x16, 0x220000 # CHECK-NEXT: 210184: ldr x17, [x16, #0x190] # CHECK-NEXT: 210188: add x16, x16, #0x190 # CHECK-NEXT: 21018c: br x17 diff --git a/lld/test/ELF/aarch64-hi21-nc.s b/lld/test/ELF/aarch64-hi21-nc.s index 154f98c..a70e148 100644 --- a/lld/test/ELF/aarch64-hi21-nc.s +++ b/lld/test/ELF/aarch64-hi21-nc.s @@ -4,5 +4,5 @@ // RUN: llvm-objdump -d %t | FileCheck %s foo = . + 0x1100000000000000 -// CHECK: adrp x0, #0 +// CHECK: adrp x0, 0x210000 adrp x0, :pg_hi21_nc:foo diff --git a/lld/test/ELF/aarch64-ifunc-bti.s b/lld/test/ELF/aarch64-ifunc-bti.s index ab6c623..d05be1e 100644 --- a/lld/test/ELF/aarch64-ifunc-bti.s +++ b/lld/test/ELF/aarch64-ifunc-bti.s @@ -14,7 +14,7 @@ # CHECK: 0000000000010380 <.plt>: # CHECK-NEXT: 10380: bti c # CHECK-NEXT: stp x16, x30, [sp, #-16]! -# CHECK-NEXT: adrp x16, #131072 +# CHECK-NEXT: adrp x16, 0x30000 # CHECK-NEXT: ldr x17, [x16, #1288] # CHECK-NEXT: add x16, x16, #1288 # CHECK-NEXT: br x17 @@ -22,7 +22,7 @@ # CHECK-NEXT: nop # CHECK: 00000000000103a0 : # CHECK-NEXT: 103a0: bti c -# CHECK-NEXT: adrp x16, #131072 +# CHECK-NEXT: adrp x16, 0x30000 # CHECK-NEXT: ldr x17, [x16, #1296] # CHECK-NEXT: add x16, x16, #1296 # CHECK-NEXT: br x17 @@ -32,7 +32,7 @@ # CHECK-EMPTY: # CHECK-NEXT: 00000000000103c0 : # CHECK-NEXT: 103c0: bti c -# CHECK-NEXT: adrp x16, #131072 +# CHECK-NEXT: adrp x16, 0x30000 # CHECK-NEXT: ldr x17, [x16, #1304] # CHECK-NEXT: add x16, x16, #1304 # CHECK-NEXT: br x17 diff --git a/lld/test/ELF/aarch64-plt.s b/lld/test/ELF/aarch64-plt.s index a049fbe..7d83a40 100644 --- a/lld/test/ELF/aarch64-plt.s +++ b/lld/test/ELF/aarch64-plt.s @@ -71,7 +71,7 @@ // DISASMDSO-NEXT: <.plt>: // DISASMDSO-NEXT: 10340: stp x16, x30, [sp, #-0x10]! // &(.got.plt[2]) = 0x30450 + 2 * 8 = 0x30460 -// DISASMDSO-NEXT: 10344: adrp x16, #0x20000 +// DISASMDSO-NEXT: 10344: adrp x16, 0x30000 // DISASMDSO-NEXT: 10348: ldr x17, [x16, #0x460] // DISASMDSO-NEXT: 1034c: add x16, x16, #0x460 // DISASMDSO-NEXT: 10350: br x17 @@ -83,7 +83,7 @@ // &.got.plt[foo] = 0x30468 // DISASMDSO-EMPTY: // DISASMDSO-NEXT: : -// DISASMDSO-NEXT: 10360: adrp x16, #0x20000 +// DISASMDSO-NEXT: 10360: adrp x16, 0x30000 // DISASMDSO-NEXT: 10364: ldr x17, [x16, #0x468] // DISASMDSO-NEXT: 10368: add x16, x16, #0x468 // DISASMDSO-NEXT: 1036c: br x17 @@ -92,7 +92,7 @@ // &.got.plt[foo] = 0x30470 // DISASMDSO-EMPTY: // DISASMDSO-NEXT: : -// DISASMDSO-NEXT: 10370: adrp x16, #0x20000 +// DISASMDSO-NEXT: 10370: adrp x16, 0x30000 // DISASMDSO-NEXT: 10374: ldr x17, [x16, #0x470] // DISASMDSO-NEXT: 10378: add x16, x16, #0x470 // DISASMDSO-NEXT: 1037c: br x17 @@ -101,7 +101,7 @@ // 0x30468 = 0x10000 + 131072 + 1128 // DISASMDSO-EMPTY: // DISASMDSO-NEXT: : -// DISASMDSO-NEXT: 10380: adrp x16, #0x20000 +// DISASMDSO-NEXT: 10380: adrp x16, 0x30000 // DISASMDSO-NEXT: 10384: ldr x17, [x16, #0x478] // DISASMDSO-NEXT: 10388: add x16, x16, #0x478 // DISASMDSO-NEXT: 1038c: br x17 @@ -163,7 +163,7 @@ // DISASMEXE-NEXT: <.plt>: // DISASMEXE-NEXT: 2102e0: stp x16, x30, [sp, #-0x10]! // &(.got.plt[2]) = 0x2303f0 + 2 * 8 = 0x230400 -// DISASMEXE-NEXT: 2102e4: adrp x16, #0x20000 +// DISASMEXE-NEXT: 2102e4: adrp x16, 0x230000 // DISASMEXE-NEXT: 2102e8: ldr x17, [x16, #0x400] // DISASMEXE-NEXT: 2102ec: add x16, x16, #0x400 // DISASMEXE-NEXT: 2102f0: br x17 @@ -174,7 +174,7 @@ // bar@plt // DISASMEXE-EMPTY: // DISASMEXE-NEXT: : -// DISASMEXE-NEXT: 210300: adrp x16, #0x20000 +// DISASMEXE-NEXT: 210300: adrp x16, 0x230000 // DISASMEXE-NEXT: 210304: ldr x17, [x16, #0x408] // DISASMEXE-NEXT: 210308: add x16, x16, #0x408 // DISASMEXE-NEXT: 21030c: br x17 @@ -182,7 +182,7 @@ // weak@plt // DISASMEXE-EMPTY: // DISASMEXE-NEXT: : -// DISASMEXE-NEXT: 210310: adrp x16, #0x20000 +// DISASMEXE-NEXT: 210310: adrp x16, 0x230000 // DISASMEXE-NEXT: 210314: ldr x17, [x16, #0x410] // DISASMEXE-NEXT: 210318: add x16, x16, #0x410 // DISASMEXE-NEXT: 21031c: br x17 diff --git a/lld/test/ELF/aarch64-relocs.s b/lld/test/ELF/aarch64-relocs.s index 9025a24..089da40 100644 --- a/lld/test/ELF/aarch64-relocs.s +++ b/lld/test/ELF/aarch64-relocs.s @@ -30,7 +30,7 @@ mystr: # CHECK: Disassembly of section .R_AARCH64_ADR_PREL_PG_H121: # CHECK-EMPTY: # CHECK-NEXT: <$x.2>: -# CHECK-NEXT: 210132: 01 00 00 90 adrp x1, #0 +# CHECK-NEXT: 210132: 01 00 00 90 adrp x1, 0x210000 .section .R_AARCH64_ADD_ABS_LO12_NC,"ax",@progbits add x0, x0, :lo12:.L.str diff --git a/lld/test/ELF/aarch64-thunk-pi.s b/lld/test/ELF/aarch64-thunk-pi.s index 50322c5..12a56bc 100644 --- a/lld/test/ELF/aarch64-thunk-pi.s +++ b/lld/test/ELF/aarch64-thunk-pi.s @@ -35,16 +35,16 @@ low_target2: // Expect range extension thunks for .text_low // adrp calculation is (PC + signed immediate) & (!0xfff) // CHECK: <__AArch64ADRPThunk_high_target>: -// CHECK-NEXT: ec: adrp x16, #0x10000000 +// CHECK-NEXT: ec: adrp x16, 0x10000000 // CHECK-NEXT: add x16, x16, #0x40 // CHECK-NEXT: br x16 // CHECK: <__AArch64ADRPThunk_high_target2>: -// CHECK-NEXT: f8: adrp x16, #0x10000000 +// CHECK-NEXT: f8: adrp x16, 0x10000000 // CHECK-NEXT: add x16, x16, #0x8 // CHECK-NEXT: br x16 /// Identical to the previous one, but for the target .text_high+8. // CHECK: <__AArch64ADRPThunk_>: -// CHECK-NEXT: 104: adrp x16, #0x10000000 +// CHECK-NEXT: 104: adrp x16, 0x10000000 // CHECK-NEXT: add x16, x16, #0x8 // CHECK-NEXT: br x16 @@ -74,7 +74,7 @@ high_target2: // Expect Thunk for .text.high // CHECK: <__AArch64ADRPThunk_low_target2>: -// CHECK-NEXT: 10000010: adrp x16, #-0x10000000 +// CHECK-NEXT: 10000010: adrp x16, 0x0 // CHECK-NEXT: add x16, x16, #0xe0 // CHECK-NEXT: br x16 @@ -82,7 +82,7 @@ high_target2: // CHECK-EMPTY: // CHECK-NEXT: <.plt>: // CHECK-NEXT: 10000020: stp x16, x30, [sp, #-0x10]! -// CHECK-NEXT: adrp x16, #0 +// CHECK-NEXT: adrp x16, 0x10000000 // CHECK-NEXT: ldr x17, [x16, #0x120] // CHECK-NEXT: add x16, x16, #0x120 // CHECK-NEXT: br x17 @@ -91,13 +91,13 @@ high_target2: // CHECK-NEXT: nop // CHECK-EMPTY: // CHECK-NEXT: : -// CHECK-NEXT: 10000040: adrp x16, #0x0 +// CHECK-NEXT: 10000040: adrp x16, 0x10000000 // CHECK-NEXT: ldr x17, [x16, #0x128] // CHECK-NEXT: add x16, x16, #0x128 // CHECK-NEXT: br x17 // CHECK-EMPTY: // CHECK-NEXT: : -// CHECK-NEXT: 10000050: adrp x16, #0x0 +// CHECK-NEXT: 10000050: adrp x16, 0x10000000 // CHECK-NEXT: ldr x17, [x16, #0x130] // CHECK-NEXT: add x16, x16, #0x130 // CHECK-NEXT: br x17 diff --git a/lld/test/ELF/aarch64-tls-gdie.s b/lld/test/ELF/aarch64-tls-gdie.s index 52fb563..ff64bf3 100644 --- a/lld/test/ELF/aarch64-tls-gdie.s +++ b/lld/test/ELF/aarch64-tls-gdie.s @@ -28,7 +28,7 @@ _start: // CHECK: <_start>: // CHECK-NEXT: 210238: nop -// CHECK-NEXT: 21023c: adrp x0, #65536 +// CHECK-NEXT: 21023c: adrp x0, 0x220000 // CHECK-NEXT: 210240: ldr x0, [x0, #768] // CHECK-NEXT: 210244: nop // CHECK-NEXT: 210248: nop diff --git a/lld/test/ELF/aarch64-tls-ie.s b/lld/test/ELF/aarch64-tls-ie.s index 24443ce..6d3e4e2 100644 --- a/lld/test/ELF/aarch64-tls-ie.s +++ b/lld/test/ELF/aarch64-tls-ie.s @@ -34,9 +34,9 @@ ## Page(0x2200B8) - Page(0x210000) = 0x10000 = 65536 ## 0x2200B8 & 0xff8 = 0xB8 = 184 # CHECK: <_start>: -# CHECK-NEXT: 210278: adrp x0, #65536 +# CHECK-NEXT: 210278: adrp x0, 0x220000 # CHECK-NEXT: 21027c: ldr x0, [x0, #824] -# CHECK-NEXT: 210280: adrp x0, #65536 +# CHECK-NEXT: 210280: adrp x0, 0x220000 # CHECK-NEXT: 210284: ldr x0, [x0, #832] .globl _start diff --git a/lld/test/ELF/aarch64-tlsdesc.s b/lld/test/ELF/aarch64-tlsdesc.s index 1ae9152..b7d3072 100644 --- a/lld/test/ELF/aarch64-tlsdesc.s +++ b/lld/test/ELF/aarch64-tlsdesc.s @@ -15,7 +15,7 @@ // create target specific dynamic TLSDESC relocation where addend is // the symbol VMA in tls block. -// CHECK: 10298: adrp x0, #65536 +// CHECK: 10298: adrp x0, 0x20000 // CHECK-NEXT: 1029c: ldr x1, [x0, #856] // CHECK-NEXT: 102a0: add x0, x0, #856 // CHECK-NEXT: 102a4: blr x1 @@ -26,7 +26,7 @@ .tlsdesccall a blr x1 -// CHECK: 102a8: adrp x0, #65536 +// CHECK: 102a8: adrp x0, 0x20000 // CHECK-NEXT: 102ac: ldr x1, [x0, #872] // CHECK-NEXT: 102b0: add x0, x0, #872 // CHECK-NEXT: 102b4: blr x1 @@ -37,7 +37,7 @@ .tlsdesccall a blr x1 -// CHECK: 102b8: adrp x0, #65536 +// CHECK: 102b8: adrp x0, 0x20000 // CHECK-NEXT: 102bc: ldr x1, [x0, #888] // CHECK-NEXT: 102c0: add x0, x0, #888 // CHECK-NEXT: 102c4: blr x1 diff --git a/lld/test/ELF/aarch64-tstbr14-reloc.s b/lld/test/ELF/aarch64-tstbr14-reloc.s index a6fc4f9..5e25975 100644 --- a/lld/test/ELF/aarch64-tstbr14-reloc.s +++ b/lld/test/ELF/aarch64-tstbr14-reloc.s @@ -66,7 +66,7 @@ #DSO-EMPTY: #DSO-NEXT: <.plt>: #DSO-NEXT: 10330: stp x16, x30, [sp, #-16]! -#DSO-NEXT: 10334: adrp x16, #131072 +#DSO-NEXT: 10334: adrp x16, 0x30000 #DSO-NEXT: 10338: ldr x17, [x16, #1072] #DSO-NEXT: 1033c: add x16, x16, #1072 #DSO-NEXT: 10340: br x17 @@ -75,13 +75,13 @@ #DSO-NEXT: 1034c: nop #DSO-EMPTY: #DSO-NEXT: <_foo@plt>: -#DSO-NEXT: 10350: adrp x16, #131072 +#DSO-NEXT: 10350: adrp x16, 0x30000 #DSO-NEXT: 10354: ldr x17, [x16, #1080] #DSO-NEXT: 10358: add x16, x16, #1080 #DSO-NEXT: 1035c: br x17 #DSO-EMPTY: #DSO-NEXT: <_bar@plt>: -#DSO-NEXT: 10360: adrp x16, #131072 +#DSO-NEXT: 10360: adrp x16, 0x30000 #DSO-NEXT: 10364: ldr x17, [x16, #1088] #DSO-NEXT: 10368: add x16, x16, #1088 #DSO-NEXT: 1036c: br x17 diff --git a/lld/test/ELF/aarch64-undefined-weak.s b/lld/test/ELF/aarch64-undefined-weak.s index 9a4b7c2..cd5abf3 100644 --- a/lld/test/ELF/aarch64-undefined-weak.s +++ b/lld/test/ELF/aarch64-undefined-weak.s @@ -44,7 +44,7 @@ _start: // CHECK-NEXT: 10010128: b.eq 0x1001012c // CHECK-NEXT: 1001012c: cbz x1, 0x10010130 // CHECK-NEXT: 10010130: adr x0, #0 -// CHECK-NEXT: 10010134: adrp x0, #0 +// CHECK-NEXT: 10010134: adrp x0, 0x10010000 // CHECK-NEXT: 10010138: ldr x8, 0x10010138 // CHECK: 1001013c: 00 00 00 00 .word 0x00000000 // CHECK-NEXT: 10010140: 00 00 00 00 .word 0x00000000 diff --git a/llvm/lib/Target/AArch64/AArch64InstrFormats.td b/llvm/lib/Target/AArch64/AArch64InstrFormats.td index 8e01a8c..2756e4d 100644 --- a/llvm/lib/Target/AArch64/AArch64InstrFormats.td +++ b/llvm/lib/Target/AArch64/AArch64InstrFormats.td @@ -263,6 +263,7 @@ def adrplabel : Operand { let EncoderMethod = "getAdrLabelOpValue"; let PrintMethod = "printAdrpLabel"; let ParserMatchClass = AdrpOperand; + let OperandType = "OPERAND_PCREL"; } def AdrOperand : AsmOperandClass { diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp index 38474d3..a372298 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp @@ -1377,7 +1377,8 @@ void AArch64InstPrinter::printAlignedLabel(const MCInst *MI, uint64_t Address, } } -void AArch64InstPrinter::printAdrpLabel(const MCInst *MI, unsigned OpNum, +void AArch64InstPrinter::printAdrpLabel(const MCInst *MI, uint64_t Address, + unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O) { const MCOperand &Op = MI->getOperand(OpNum); @@ -1385,7 +1386,11 @@ void AArch64InstPrinter::printAdrpLabel(const MCInst *MI, unsigned OpNum, // If the label has already been resolved to an immediate offset (say, when // we're running the disassembler), just print the immediate. if (Op.isImm()) { - O << "#" << formatImm(Op.getImm() * (1 << 12)); + const int64_t Offset = Op.getImm() << 12; + if (PrintBranchImmAsAddress) + O << formatHex((Address & -4096) + Offset); + else + O << "#" << Offset; return; } diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h index 20c4e4c..1a0342b 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h @@ -156,7 +156,7 @@ protected: void printVectorIndex(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O); - void printAdrpLabel(const MCInst *MI, unsigned OpNum, + void printAdrpLabel(const MCInst *MI, uint64_t Address, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O); void printBarrierOption(const MCInst *MI, unsigned OpNum, const MCSubtargetInfo &STI, raw_ostream &O); diff --git a/llvm/test/MC/AArch64/adr.s b/llvm/test/MC/AArch64/adr.s index 57b3a5b..c6abd5d 100644 --- a/llvm/test/MC/AArch64/adr.s +++ b/llvm/test/MC/AArch64/adr.s @@ -19,15 +19,15 @@ adr x5, (0xffffffff000f1000 - 0xffffffff00000000 + Symbol) adr x6, Symbol + (0xffffffff000f1000 - 0xffffffff00000000) -// CHECK-NEXT: adrp x0, #0 +// CHECK-NEXT: adrp x0, 0x0 // CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 Symbol -// CHECK-NEXT: adrp x2, #0 +// CHECK-NEXT: adrp x2, 0x0 // CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 Symbol -// CHECK-NEXT: adrp x3, #0 +// CHECK-NEXT: adrp x3, 0x0 // CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 Symbol+0xf1000 -// CHECK-NEXT: adrp x4, #0 +// CHECK-NEXT: adrp x4, 0x0 // CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 Symbol+0xf1000 -// CHECK-NEXT: adrp x5, #0 +// CHECK-NEXT: adrp x5, 0x0 // CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 Symbol+0xf1000 adrp x0, Symbol diff --git a/llvm/test/MC/AArch64/coff-relocations.s b/llvm/test/MC/AArch64/coff-relocations.s index c37b2bb..54706fd 100644 --- a/llvm/test/MC/AArch64/coff-relocations.s +++ b/llvm/test/MC/AArch64/coff-relocations.s @@ -89,7 +89,7 @@ tbz x0, #0, target ; CHECK: } ; CHECK: ] -; DISASM: 30: 20 1a 09 b0 adrp x0, #305418240 +; DISASM: 30: 20 1a 09 b0 adrp x0, 0x12345000 ; DISASM: 34: 00 14 0d 91 add x0, x0, #837 ; DISASM: 38: 00 14 4d 39 ldrb w0, [x0, #837] ; DISASM: 3c: 00 a4 41 f9 ldr x0, [x0, #840] diff --git a/llvm/test/tools/llvm-objdump/ELF/AArch64/elf-aarch64-mapping-symbols.test b/llvm/test/tools/llvm-objdump/ELF/AArch64/elf-aarch64-mapping-symbols.test index 1d988c6..9b628d7 100644 --- a/llvm/test/tools/llvm-objdump/ELF/AArch64/elf-aarch64-mapping-symbols.test +++ b/llvm/test/tools/llvm-objdump/ELF/AArch64/elf-aarch64-mapping-symbols.test @@ -24,7 +24,7 @@ mystr: # CHECK: 10: 0a 00 .short 0x000a # CHECK: Disassembly of section .myothersection: # CHECK: <$x.2>: -# CHECK: 0: 01 00 00 90 adrp x1, #0 +# CHECK: 0: 01 00 00 90 adrp x1, 0x0 # CHECK: : # CHECK: 4: 62 6c 61 68 .word # CHECK: 8: 00 .byte 0x01 diff --git a/llvm/test/tools/llvm-objdump/ELF/AArch64/pcrel-address.yaml b/llvm/test/tools/llvm-objdump/ELF/AArch64/pcrel-address.yaml new file mode 100644 index 0000000..48b2f2c --- /dev/null +++ b/llvm/test/tools/llvm-objdump/ELF/AArch64/pcrel-address.yaml @@ -0,0 +1,26 @@ +# RUN: yaml2obj %s -o %t +# RUN: llvm-objdump %t -d --no-show-raw-insn --no-leading-addr | FileCheck %s + +# CHECK-LABEL: <_start>: +# CHECK-NEXT: adrp x2, 0x220000 <_start+0x80> + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_AARCH64 +Sections: + - Name: .text + Type: SHT_PROGBITS + Address: 0x200100 + Flags: [SHF_ALLOC, SHF_EXECINSTR] + Content: '02010090' + - Name: .data + Type: SHT_PROGBITS + Flags: [SHF_ALLOC, SHF_WRITE] + Address: 0x220000 +Symbols: + - Name: _start + Section: .text + Value: 0x200100