diff options
author | Alan Modra <amodra@gmail.com> | 2020-05-11 09:34:49 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-05-11 21:08:37 +0930 |
commit | 94ba9882d5acfdc38267a8a822a8b0b8eb3e44ef (patch) | |
tree | 007e183baea4230be47a5fe232d7dee4e4fc9ac6 /ld | |
parent | f4791f1afad449b81804cb6b62ed238603592d1b (diff) | |
download | fsf-binutils-gdb-94ba9882d5acfdc38267a8a822a8b0b8eb3e44ef.zip fsf-binutils-gdb-94ba9882d5acfdc38267a8a822a8b0b8eb3e44ef.tar.gz fsf-binutils-gdb-94ba9882d5acfdc38267a8a822a8b0b8eb3e44ef.tar.bz2 |
Power10 VSX 32-byte storage access
bfd/
* elf64-ppc.c (xlate_pcrel_opt): Handle lxvp and stxvp.
opcodes/
* ppc-opc.c (insert_xtp, extract_xtp): New functions.
(XTP, DQXP, DQXP_MASK): Define.
(powerpc_opcodes): Add lxvp, stxvp, lxvpx, stxvpx.
(prefix_opcodes): Add plxvp and pstxvp.
gas/
* testsuite/gas/ppc/vsx_32byte.d,
* testsuite/gas/ppc/vsx_32byte.s: New test.
* testsuite/gas/ppc/ppc.exp: Run it.
ld/
* testsuite/ld-powerpc/pcrelopt.s: Add lxvp and stxvp.
* testsuite/ld-powerpc/pcrelopt.d: Update.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/pcrelopt.d | 12 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/pcrelopt.s | 16 |
3 files changed, 33 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 306d1ed..9ad0996 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,10 @@ 2020-05-11 Alan Modra <amodra@gmail.com> + * testsuite/ld-powerpc/pcrelopt.s: Add lxvp and stxvp. + * testsuite/ld-powerpc/pcrelopt.d: Update. + +2020-05-11 Alan Modra <amodra@gmail.com> + * testsuite/ld-powerpc/callstub-1.d: Use -mpower10/-Mpower10 in place of -mfuture/-Mfuture. * testsuite/ld-powerpc/notoc2.d: Likewise. diff --git a/ld/testsuite/ld-powerpc/pcrelopt.d b/ld/testsuite/ld-powerpc/pcrelopt.d index aeaa0cd..00c8167 100644 --- a/ld/testsuite/ld-powerpc/pcrelopt.d +++ b/ld/testsuite/ld-powerpc/pcrelopt.d @@ -94,3 +94,15 @@ Disassembly of section \.text: .*: (06 10 00 01|01 00 10 06) pla r7,65972 .*: (38 e0 01 b4|b4 01 e0 38) .*: (88 c7 00 00|00 00 c7 88) lbz r6,0\(r7\) +.*: (04 10 00 01|01 00 10 04) plxvp vs62,65960 +.*: (eb e0 01 a8|a8 01 e0 eb) +.*: (60 00 00 00|00 00 00 60) nop +.*: (04 10 00 01|01 00 10 04) plxvp vs0,65948 +.*: (e8 00 01 9c|9c 01 00 e8) +.*: (60 00 00 00|00 00 00 60) nop +.*: (04 10 00 01|01 00 10 04) pstxvp vs62,65936 +.*: (fb e0 01 90|90 01 e0 fb) +.*: (60 00 00 00|00 00 00 60) nop +.*: (04 10 00 01|01 00 10 04) pstxvp vs0,65924 +.*: (f8 00 01 84|84 01 00 f8) +.*: (60 00 00 00|00 00 00 60) nop diff --git a/ld/testsuite/ld-powerpc/pcrelopt.s b/ld/testsuite/ld-powerpc/pcrelopt.s index 715a52b..4b41436 100644 --- a/ld/testsuite/ld-powerpc/pcrelopt.s +++ b/ld/testsuite/ld-powerpc/pcrelopt.s @@ -127,5 +127,21 @@ _start: pld 7,sym@got@pcrel lbz 6,0(7) + pld 9,sym@got@pcrel + .reloc .-8,R_PPC64_PCREL_OPT,0f-(.-8) +0: lxvp 62,0(9) + + pld 9,sym@got@pcrel + .reloc .-8,R_PPC64_PCREL_OPT,0f-(.-8) +0: lxvp 0,0(9) + + pld 9,sym@got@pcrel + .reloc .-8,R_PPC64_PCREL_OPT,0f-(.-8) +0: stxvp 62,0(9) + + pld 9,sym@got@pcrel + .reloc .-8,R_PPC64_PCREL_OPT,0f-(.-8) +0: stxvp 0,0(9) + .data sym: .space 32 |