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 /gas/testsuite | |
parent | f4791f1afad449b81804cb6b62ed238603592d1b (diff) | |
download | gdb-94ba9882d5acfdc38267a8a822a8b0b8eb3e44ef.zip gdb-94ba9882d5acfdc38267a8a822a8b0b8eb3e44ef.tar.gz 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 'gas/testsuite')
-rw-r--r-- | gas/testsuite/gas/ppc/ppc.exp | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/ppc/vsx_32byte.d | 33 | ||||
-rw-r--r-- | gas/testsuite/gas/ppc/vsx_32byte.s | 17 |
3 files changed, 51 insertions, 0 deletions
diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp index ea053fb..aad7b02 100644 --- a/gas/testsuite/gas/ppc/ppc.exp +++ b/gas/testsuite/gas/ppc/ppc.exp @@ -133,3 +133,4 @@ if { [supports_ppc64] } then { } run_dump_test "byte_rev" run_dump_test "vec_mul" +run_dump_test "vsx_32byte" diff --git a/gas/testsuite/gas/ppc/vsx_32byte.d b/gas/testsuite/gas/ppc/vsx_32byte.d new file mode 100644 index 0000000..fb51cc2 --- /dev/null +++ b/gas/testsuite/gas/ppc/vsx_32byte.d @@ -0,0 +1,33 @@ +#as: -mpower10 +#objdump: -dr -Mpower10 +#name: VSX 32-byte loads and stores + +.* + + +Disassembly of section \.text: + +0+0 <_start>: +.*: (18 5f 00 00|00 00 5f 18) lxvp vs2,0\(r31\) +.*: (1b e0 ff f0|f0 ff e0 1b) lxvp vs62,-16\(0\) +.*: (04 00 00 00|00 00 00 04) plxvp vs4,1\(r30\) +.*: (e8 9e 00 01|01 00 9e e8) +.*: (04 03 ff ff|ff ff 03 04) plxvp vs60,-1\(r9\) +.*: (eb a9 ff ff|ff ff a9 eb) +.*: (04 10 12 34|34 12 10 04) plxvp vs6,305419896 +.*: (e8 c0 56 78|78 56 c0 e8) +.*: (04 13 ff ff|ff ff 13 04) plxvp vs58,-32 +.*: (eb 60 ff e0|e0 ff 60 eb) +.*: (7f 20 0a 9a|9a 0a 20 7f) lxvpx vs56,0,r1 +.*: (19 1d 00 01|01 00 1d 19) stxvp vs8,0\(r29\) +.*: (1a e0 ff f1|f1 ff e0 1a) stxvp vs54,-16\(0\) +.*: (04 00 00 00|00 00 00 04) pstxvp vs10,1\(r28\) +.*: (f9 5c 00 01|01 00 5c f9) +.*: (60 00 00 00|00 00 00 60) nop +.*: (04 03 ff ff|ff ff 03 04) pstxvp vs52,-1\(r8\) +.*: (fa a8 ff ff|ff ff a8 fa) +.*: (04 10 12 34|34 12 10 04) pstxvp vs12,305419896 +.*: (f9 80 56 78|78 56 80 f9) +.*: (04 13 ff ff|ff ff 13 04) pstxvp vs50,-80 +.*: (fa 60 ff b0|b0 ff 60 fa) +.*: (7e 20 0b 9a|9a 0b 20 7e) stxvpx vs48,0,r1 diff --git a/gas/testsuite/gas/ppc/vsx_32byte.s b/gas/testsuite/gas/ppc/vsx_32byte.s new file mode 100644 index 0000000..fe26982 --- /dev/null +++ b/gas/testsuite/gas/ppc/vsx_32byte.s @@ -0,0 +1,17 @@ + .text +_start: + lxvp 2,0(31) + lxvp 62,-16(0) + plxvp 4,1(30) + plxvp 60,-1(9) + plxvp 6,0x12345678(0),1 + plxvp 58,_start-. + lxvpx 56,0,1 + + stxvp 8,0(29) + stxvp 54,-16(0) + pstxvp 10,1(28) + pstxvp 52,-1(8) + pstxvp 12,0x12345678(0),1 + pstxvp 50,_start-. + stxvpx 48,0,1 |