diff options
Diffstat (limited to 'test/ELF/plt-aarch64.s')
-rw-r--r-- | test/ELF/plt-aarch64.s | 158 |
1 files changed, 78 insertions, 80 deletions
diff --git a/test/ELF/plt-aarch64.s b/test/ELF/plt-aarch64.s index 3f124b0af49c..9bc6f54743aa 100644 --- a/test/ELF/plt-aarch64.s +++ b/test/ELF/plt-aarch64.s @@ -18,7 +18,7 @@ // CHECKDSO-NEXT: SHF_ALLOC // CHECKDSO-NEXT: SHF_EXECINSTR // CHECKDSO-NEXT: ] -// CHECKDSO-NEXT: Address: 0x1010 +// CHECKDSO-NEXT: Address: 0x10010 // CHECKDSO-NEXT: Offset: // CHECKDSO-NEXT: Size: 80 // CHECKDSO-NEXT: Link: @@ -31,7 +31,7 @@ // CHECKDSO-NEXT: SHF_ALLOC // CHECKDSO-NEXT: SHF_WRITE // CHECKDSO-NEXT: ] -// CHECKDSO-NEXT: Address: 0x3000 +// CHECKDSO-NEXT: Address: 0x30000 // CHECKDSO-NEXT: Offset: // CHECKDSO-NEXT: Size: 48 // CHECKDSO-NEXT: Link: @@ -41,72 +41,72 @@ // CHECKDSO: Relocations [ // CHECKDSO-NEXT: Section ({{.*}}) .rela.plt { -// &(.got.plt[3]) = 0x3000 + 3 * 8 = 0x3018 -// CHECKDSO-NEXT: 0x3018 R_AARCH64_JUMP_SLOT foo +// &(.got.plt[3]) = 0x30000 + 3 * 8 = 0x30018 +// CHECKDSO-NEXT: 0x30018 R_AARCH64_JUMP_SLOT foo -// &(.got.plt[4]) = 0x3000 + 4 * 8 = 0x3020 -// CHECKDSO-NEXT: 0x3020 R_AARCH64_JUMP_SLOT bar +// &(.got.plt[4]) = 0x30000 + 4 * 8 = 0x30020 +// CHECKDSO-NEXT: 0x30020 R_AARCH64_JUMP_SLOT bar -// &(.got.plt[5]) = 0x3000 + 5 * 8 = 0x3028 -// CHECKDSO-NEXT: 0x3028 R_AARCH64_JUMP_SLOT weak +// &(.got.plt[5]) = 0x30000 + 5 * 8 = 0x30028 +// CHECKDSO-NEXT: 0x30028 R_AARCH64_JUMP_SLOT weak // CHECKDSO-NEXT: } // CHECKDSO-NEXT: ] // DUMPDSO: Contents of section .got.plt: // .got.plt[0..2] = 0 (reserved) -// .got.plt[3..5] = .plt = 0x1010 -// DUMPDSO-NEXT: 3000 00000000 00000000 00000000 00000000 ................ -// DUMPDSO-NEXT: 3010 00000000 00000000 10100000 00000000 ................ -// DUMPDSO-NEXT: 3020 10100000 00000000 10100000 00000000 ................ +// .got.plt[3..5] = .plt = 0x10010 +// DUMPDSO-NEXT: 30000 00000000 00000000 00000000 00000000 ................ +// DUMPDSO-NEXT: 30010 00000000 00000000 10000100 00000000 ................ +// DUMPDSO-NEXT: 30020 10000100 00000000 10000100 00000000 ................ // DISASMDSO: _start: -// 0x1030 - 0x1000 = 0x30 = 48 -// DISASMDSO-NEXT: 1000: 0c 00 00 14 b #48 -// 0x1040 - 0x1004 = 0x3c = 60 -// DISASMDSO-NEXT: 1004: 0f 00 00 14 b #60 -// 0x1050 - 0x1008 = 0x48 = 72 -// DISASMDSO-NEXT: 1008: 12 00 00 14 b #72 +// 0x10030 - 0x10000 = 0x30 = 48 +// DISASMDSO-NEXT: 10000: 0c 00 00 14 b #48 +// 0x10040 - 0x10004 = 0x3c = 60 +// DISASMDSO-NEXT: 10004: 0f 00 00 14 b #60 +// 0x10050 - 0x10008 = 0x48 = 72 +// DISASMDSO-NEXT: 10008: 12 00 00 14 b #72 // DISASMDSO: foo: -// DISASMDSO-NEXT: 100c: 1f 20 03 d5 nop +// DISASMDSO-NEXT: 1000c: 1f 20 03 d5 nop // DISASMDSO: Disassembly of section .plt: // DISASMDSO-NEXT: .plt: -// DISASMDSO-NEXT: 1010: f0 7b bf a9 stp x16, x30, [sp, #-16]! +// DISASMDSO-NEXT: 10010: f0 7b bf a9 stp x16, x30, [sp, #-16]! // &(.got.plt[2]) = 0x3000 + 2 * 8 = 0x3010 -// Page(0x3010) - Page(0x1014) = 0x3000 - 0x1000 = 0x2000 = 8192 -// DISASMDSO-NEXT: 1014: 10 00 00 d0 adrp x16, #8192 +// Page(0x30010) - Page(0x10014) = 0x30000 - 0x10000 = 0x20000 = 131072 +// DISASMDSO-NEXT: 10014: 10 01 00 90 adrp x16, #131072 // 0x3010 & 0xFFF = 0x10 = 16 -// DISASMDSO-NEXT: 1018: 11 0a 40 f9 ldr x17, [x16, #16] -// DISASMDSO-NEXT: 101c: 10 42 00 91 add x16, x16, #16 -// DISASMDSO-NEXT: 1020: 20 02 1f d6 br x17 -// DISASMDSO-NEXT: 1024: 1f 20 03 d5 nop -// DISASMDSO-NEXT: 1028: 1f 20 03 d5 nop -// DISASMDSO-NEXT: 102c: 1f 20 03 d5 nop +// DISASMDSO-NEXT: 10018: 11 0a 40 f9 ldr x17, [x16, #16] +// DISASMDSO-NEXT: 1001c: 10 42 00 91 add x16, x16, #16 +// DISASMDSO-NEXT: 10020: 20 02 1f d6 br x17 +// DISASMDSO-NEXT: 10024: 1f 20 03 d5 nop +// DISASMDSO-NEXT: 10028: 1f 20 03 d5 nop +// DISASMDSO-NEXT: 1002c: 1f 20 03 d5 nop // foo@plt -// Page(0x3018) - Page(0x1030) = 0x3000 - 0x1000 = 0x2000 = 8192 -// DISASMDSO-NEXT: 1030: 10 00 00 d0 adrp x16, #8192 +// Page(0x30018) - Page(0x10030) = 0x30000 - 0x10000 = 0x20000 = 131072 +// DISASMDSO-NEXT: 10030: 10 01 00 90 adrp x16, #131072 // 0x3018 & 0xFFF = 0x18 = 24 -// DISASMDSO-NEXT: 1034: 11 0e 40 f9 ldr x17, [x16, #24] -// DISASMDSO-NEXT: 1038: 10 62 00 91 add x16, x16, #24 -// DISASMDSO-NEXT: 103c: 20 02 1f d6 br x17 +// DISASMDSO-NEXT: 10034: 11 0e 40 f9 ldr x17, [x16, #24] +// DISASMDSO-NEXT: 10038: 10 62 00 91 add x16, x16, #24 +// DISASMDSO-NEXT: 1003c: 20 02 1f d6 br x17 // bar@plt -// Page(0x3020) - Page(0x1040) = 0x3000 - 0x1000 = 0x2000 = 8192 -// DISASMDSO-NEXT: 1040: 10 00 00 d0 adrp x16, #8192 +// Page(0x30020) - Page(0x10040) = 0x30000 - 0x10000 = 0x20000 = 131072 +// DISASMDSO-NEXT: 10040: 10 01 00 90 adrp x16, #131072 // 0x3020 & 0xFFF = 0x20 = 32 -// DISASMDSO-NEXT: 1044: 11 12 40 f9 ldr x17, [x16, #32] -// DISASMDSO-NEXT: 1048: 10 82 00 91 add x16, x16, #32 -// DISASMDSO-NEXT: 104c: 20 02 1f d6 br x17 +// DISASMDSO-NEXT: 10044: 11 12 40 f9 ldr x17, [x16, #32] +// DISASMDSO-NEXT: 10048: 10 82 00 91 add x16, x16, #32 +// DISASMDSO-NEXT: 1004c: 20 02 1f d6 br x17 // weak@plt -// Page(0x3028) - Page(0x1050) = 0x3000 - 0x1000 = 0x2000 = 8192 -// DISASMDSO-NEXT: 1050: 10 00 00 d0 adrp x16, #8192 +// Page(0x30028) - Page(0x10050) = 0x30000 - 0x10000 = 0x20000 = 131072 +// DISASMDSO-NEXT: 10050: 10 01 00 90 adrp x16, #131072 // 0x3028 & 0xFFF = 0x28 = 40 -// DISASMDSO-NEXT: 1054: 11 16 40 f9 ldr x17, [x16, #40] -// DISASMDSO-NEXT: 1058: 10 a2 00 91 add x16, x16, #40 -// DISASMDSO-NEXT: 105c: 20 02 1f d6 br x17 +// DISASMDSO-NEXT: 10054: 11 16 40 f9 ldr x17, [x16, #40] +// DISASMDSO-NEXT: 10058: 10 a2 00 91 add x16, x16, #40 +// DISASMDSO-NEXT: 1005c: 20 02 1f d6 br x17 // CHECKEXE: Name: .plt // CHECKEXE-NEXT: Type: SHT_PROGBITS @@ -114,7 +114,7 @@ // CHECKEXE-NEXT: SHF_ALLOC // CHECKEXE-NEXT: SHF_EXECINSTR // CHECKEXE-NEXT: ] -// CHECKEXE-NEXT: Address: 0x11010 +// CHECKEXE-NEXT: Address: 0x20010 // CHECKEXE-NEXT: Offset: // CHECKEXE-NEXT: Size: 64 // CHECKEXE-NEXT: Link: @@ -127,7 +127,7 @@ // CHECKEXE-NEXT: SHF_ALLOC // CHECKEXE-NEXT: SHF_WRITE // CHECKEXE-NEXT: ] -// CHECKEXE-NEXT: Address: 0x13000 +// CHECKEXE-NEXT: Address: 0x40000 // CHECKEXE-NEXT: Offset: // CHECKEXE-NEXT: Size: 40 // CHECKEXE-NEXT: Link: @@ -138,60 +138,58 @@ // CHECKEXE-NEXT: Section ({{.*}}) .rela.plt { // &(.got.plt[3]) = 0x13000 + 3 * 8 = 0x13018 -// CHECKEXE-NEXT: 0x13018 R_AARCH64_JUMP_SLOT bar 0x0 +// CHECKEXE-NEXT: 0x40018 R_AARCH64_JUMP_SLOT bar 0x0 // &(.got.plt[4]) = 0x13000 + 4 * 8 = 0x13020 -// CHECKEXE-NEXT: 0x13020 R_AARCH64_JUMP_SLOT weak 0x0 +// CHECKEXE-NEXT: 0x40020 R_AARCH64_JUMP_SLOT weak 0x0 // CHECKEXE-NEXT: } // CHECKEXE-NEXT: ] // DUMPEXE: Contents of section .got.plt: // .got.plt[0..2] = 0 (reserved) -// .got.plt[3..4] = .plt = 0x11010 -// DUMPEXE-NEXT: 13000 00000000 00000000 00000000 00000000 ................ -// DUMPEXE-NEXT: 13010 00000000 00000000 10100100 00000000 ................ -// DUMPEXE-NEXT: 13020 10100100 00000000 ........ +// .got.plt[3..4] = .plt = 0x40010 +// DUMPEXE-NEXT: 40000 00000000 00000000 00000000 00000000 ................ +// DUMPEXE-NEXT: 40010 00000000 00000000 10000200 00000000 ................ +// DUMPEXE-NEXT: 40020 10000200 00000000 ........ // DISASMEXE: _start: -// 0x1100c - 0x11000 = 0xc = 12 -// DISASMEXE-NEXT: 11000: 03 00 00 14 b #12 -// 0x11030 - 0x11004 = 0x2c = 44 -// DISASMEXE-NEXT: 11004: 0b 00 00 14 b #44 -// 0x11040 - 0x11008 = 0x38 = 56 -// DISASMEXE-NEXT: 11008: 0e 00 00 14 b #56 +// 0x2000c - 0x20000 = 0xc = 12 +// DISASMEXE-NEXT: 20000: 03 00 00 14 b #12 +// 0x20030 - 0x20004 = 0x2c = 44 +// DISASMEXE-NEXT: 20004: 0b 00 00 14 b #44 +// 0x20040 - 0x20008 = 0x38 = 56 +// DISASMEXE-NEXT: 20008: 0e 00 00 14 b #56 // DISASMEXE: foo: -// DISASMEXE-NEXT: 1100c: 1f 20 03 d5 nop +// DISASMEXE-NEXT: 2000c: 1f 20 03 d5 nop // DISASMEXE: Disassembly of section .plt: // DISASMEXE-NEXT: .plt: -// DISASMEXE-NEXT: 11010: f0 7b bf a9 stp x16, x30, [sp, #-16]! -// &(.got.plt[2]) = 0x120B0 + 2 * 8 = 0x120C0 -// Page(0x13010) - Page(0x11014) = 0x13000 - 0x11000 = 0x1000 = 8192 -// DISASMEXE-NEXT: 11014: 10 00 00 d0 adrp x16, #8192 +// DISASMEXE-NEXT: 20010: f0 7b bf a9 stp x16, x30, [sp, #-16]! +// &(.got.plt[2]) = 0x300B0 + 2 * 8 = 0x300C0 +// Page(0x40010) - Page(0x20014) = 0x40000 - 0x20000 = 0x20000 = 131072 +// DISASMEXE-NEXT: 20014: 10 01 00 90 adrp x16, #131072 // 0x120c0 & 0xFFF = 0xC0 = 192 -// DISASMEXE-NEXT: 11018: 11 0a 40 f9 ldr x17, [x16, #16] -// DISASMEXE-NEXT: 1101c: 10 42 00 91 add x16, x16, #16 -// DISASMEXE-NEXT: 11020: 20 02 1f d6 br x17 -// DISASMEXE-NEXT: 11024: 1f 20 03 d5 nop -// DISASMEXE-NEXT: 11028: 1f 20 03 d5 nop -// DISASMEXE-NEXT: 1102c: 1f 20 03 d5 nop +// DISASMEXE-NEXT: 20018: 11 0a 40 f9 ldr x17, [x16, #16] +// DISASMEXE-NEXT: 2001c: 10 42 00 91 add x16, x16, #16 +// DISASMEXE-NEXT: 20020: 20 02 1f d6 br x17 +// DISASMEXE-NEXT: 20024: 1f 20 03 d5 nop +// DISASMEXE-NEXT: 20028: 1f 20 03 d5 nop +// DISASMEXE-NEXT: 2002c: 1f 20 03 d5 nop // bar@plt -// Page(0x13018) - Page(0x11030) = 0x12000 - 0x11000 = 0x1000 = 8192 -// DISASMEXE-NEXT: 11030: 10 00 00 d0 adrp x16, #8192 -// 0x120C8 & 0xFFF = 0xC8 = 200 -// DISASMEXE-NEXT: 11034: 11 0e 40 f9 ldr x17, [x16, #24] -// DISASMEXE-NEXT: 11038: 10 62 00 91 add x16, x16, #24 -// DISASMEXE-NEXT: 1103c: 20 02 1f d6 br x17 +// Page(0x40018) - Page(0x20030) = 0x40000 - 0x20000 = 0x20000 = 131072 +// DISASMEXE-NEXT: 20030: 10 01 00 90 adrp x16, #131072 +// DISASMEXE-NEXT: 20034: 11 0e 40 f9 ldr x17, [x16, #24] +// DISASMEXE-NEXT: 20038: 10 62 00 91 add x16, x16, #24 +// DISASMEXE-NEXT: 2003c: 20 02 1f d6 br x17 // weak@plt -// Page(0x13020) - Page(0x11040) = 0x12000 - 0x11000 = 0x1000 = 8192 -// DISASMEXE-NEXT: 11040: 10 00 00 d0 adrp x16, #8192 -// 0x120D0 & 0xFFF = 0xD0 = 208 -// DISASMEXE-NEXT: 11044: 11 12 40 f9 ldr x17, [x16, #32] -// DISASMEXE-NEXT: 11048: 10 82 00 91 add x16, x16, #32 -// DISASMEXE-NEXT: 1104c: 20 02 1f d6 br x17 +// Page(0x40020) - Page(0x20040) = 0x40000 - 0x20000 = 0x20000 = 131072 +// DISASMEXE-NEXT: 20040: 10 01 00 90 adrp x16, #131072 +// DISASMEXE-NEXT: 20044: 11 12 40 f9 ldr x17, [x16, #32] +// DISASMEXE-NEXT: 20048: 10 82 00 91 add x16, x16, #32 +// DISASMEXE-NEXT: 2004c: 20 02 1f d6 br x17 .global _start,foo,bar .weak weak |