diff options
Diffstat (limited to 'ld/testsuite')
-rw-r--r-- | ld/testsuite/ld-aarch64/aarch64-elf.exp | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/bti-pac-plt-1.d | 34 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/bti-pac-plt-2.d | 36 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/bti-plt-1.s | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/pac-plt-1.d | 33 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/pac-plt-2.d | 24 |
6 files changed, 134 insertions, 0 deletions
diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp index 906534b..12c2d97 100644 --- a/ld/testsuite/ld-aarch64/aarch64-elf.exp +++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp @@ -402,3 +402,8 @@ run_dump_test "bti-plt-4" run_dump_test "bti-plt-5" run_dump_test "bti-plt-6" run_dump_test "bti-plt-7" + +run_dump_test "pac-plt-1" +run_dump_test "pac-plt-2" +run_dump_test "bti-pac-plt-1" +run_dump_test "bti-pac-plt-2" diff --git a/ld/testsuite/ld-aarch64/bti-pac-plt-1.d b/ld/testsuite/ld-aarch64/bti-pac-plt-1.d new file mode 100644 index 0000000..8d780ca --- /dev/null +++ b/ld/testsuite/ld-aarch64/bti-pac-plt-1.d @@ -0,0 +1,34 @@ +#source: bti-plt-1.s +#as: -mabi=lp64 +#ld: -shared --force-bti --pac-plt -T bti-plt.ld +#objdump: -dr -j .plt + +[^:]*: *file format elf64-.*aarch64 + +Disassembly of section \.plt: + +[0-9a-f]+ <.*>: +.*: d503245f bti c +.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]! +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9400e11 ldr x17, \[x16, #24\] +.*: 91006210 add x16, x16, #0x18 +.*: d503219f autia1716 +.*: d61f0220 br x17 +.*: d503201f nop +.*: d503201f nop +.*: d503201f nop + +[0-9a-f]+ <.*>: +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401211 ldr x17, \[x16, #32\] +.*: 91008210 add x16, x16, #0x20 +.*: d503219f autia1716 +.*: d61f0220 br x17 + +[0-9a-f]+ <.*>: +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401611 ldr x17, \[x16, #40\] +.*: 9100a210 add x16, x16, #0x28 +.*: d503219f autia1716 +.*: d61f0220 br x17 diff --git a/ld/testsuite/ld-aarch64/bti-pac-plt-2.d b/ld/testsuite/ld-aarch64/bti-pac-plt-2.d new file mode 100644 index 0000000..d1264ea --- /dev/null +++ b/ld/testsuite/ld-aarch64/bti-pac-plt-2.d @@ -0,0 +1,36 @@ +#source: bti-plt-1.s +#as: -mabi=lp64 +#ld: --force-bti --pac-plt -e _start -T bti-plt.ld -L./tmpdir -lbti-plt-so +#objdump: -dr -j .plt + +[^:]*: *file format elf64-.*aarch64 + +Disassembly of section \.plt: + +[0-9]+ <.*>: +.*: d503245f bti c +.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]! +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9400e11 ldr x17, \[x16, #24\] +.*: 91006210 add x16, x16, #0x18 +.*: d503219f autia1716 +.*: d61f0220 br x17 +.*: d503201f nop +.*: d503201f nop +.*: d503201f nop + +[0-9]+ <.*>: +.*: d503245f bti c +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401211 ldr x17, \[x16, #32\] +.*: 91008210 add x16, x16, #0x20 +.*: d503219f autia1716 +.*: d61f0220 br x17 + +[0-9]+ <.*>: +.*: d503245f bti c +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401611 ldr x17, \[x16, #40\] +.*: 9100a210 add x16, x16, #0x28 +.*: d503219f autia1716 +.*: d61f0220 br x17 diff --git a/ld/testsuite/ld-aarch64/bti-plt-1.s b/ld/testsuite/ld-aarch64/bti-plt-1.s index 78e1aaa..b798ca4 100644 --- a/ld/testsuite/ld-aarch64/bti-plt-1.s +++ b/ld/testsuite/ld-aarch64/bti-plt-1.s @@ -4,6 +4,7 @@ _start: bl foo bl bar +.ifndef __guard_property_bti__ .section ".note.gnu.property", "a" .p2align 3 .long 1f - 0f /* name length */ @@ -19,3 +20,4 @@ _start: 4: .p2align 3 5: +.endif diff --git a/ld/testsuite/ld-aarch64/pac-plt-1.d b/ld/testsuite/ld-aarch64/pac-plt-1.d new file mode 100644 index 0000000..47be949 --- /dev/null +++ b/ld/testsuite/ld-aarch64/pac-plt-1.d @@ -0,0 +1,33 @@ +#source: bti-plt-1.s +#as: -mabi=lp64 --defsym __guard_property_bti__=1 +#ld: -shared --pac-plt -T bti-plt.ld +#objdump: -dr -j .plt + +[^:]*: *file format elf64-.*aarch64 + +Disassembly of section \.plt: + +[0-9]+ <.*>: +.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]! +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9400e11 ldr x17, \[x16, #24\] +.*: 91006210 add x16, x16, #0x18 +.*: d503219f autia1716 +.*: d61f0220 br x17 +.*: d503201f nop +.*: d503201f nop +.*: d503201f nop + +[0-9]+ <.*>: +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401211 ldr x17, \[x16, #32\] +.*: 91008210 add x16, x16, #0x20 +.*: d503219f autia1716 +.*: d61f0220 br x17 + +[0-9]+ <.*>: +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401611 ldr x17, \[x16, #40\] +.*: 9100a210 add x16, x16, #0x28 +.*: d503219f autia1716 +.*: d61f0220 br x17 diff --git a/ld/testsuite/ld-aarch64/pac-plt-2.d b/ld/testsuite/ld-aarch64/pac-plt-2.d new file mode 100644 index 0000000..42bfdca --- /dev/null +++ b/ld/testsuite/ld-aarch64/pac-plt-2.d @@ -0,0 +1,24 @@ +#source: tls-desc-ie.s +#ld: -shared --pac-plt -T bti-plt.ld +#objdump: -dr -j .plt +#... +Disassembly of section .plt: + +0000000000018000 \<.plt\>: +.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]! +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401a11 ldr x17, \[x16, #48\] +.*: 9100c210 add x16, x16, #0x30 +.*: d503219f autia1716 +.*: d61f0220 br x17 +.*: d503201f nop +.*: d503201f nop +.*: d503201f nop + + +0000000000018024 \<__tls_get_addr@plt\>: +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401e11 ldr x17, \[x16, #56\] +.*: 9100e210 add x16, x16, #0x38 +.*: d503219f autia1716 +.*: d61f0220 br x17 |