From d7e97a765ef0b9da6cdddd907ebe9f56a71716ba Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 11 May 2020 09:43:15 +0930 Subject: [PATCH] Power10 VSX PCV generate operations opcodes/ * ppc-opc.c (powerpc_opcodes): Add xxgenpcvbm, xxgenpcvhm, xxgenpcvwm, xxgenpcvdm. gas/ * testsuite/gas/ppc/genpcv.d, * testsuite/gas/ppc/genpcv.s: New test. * testsuite/gas/ppc/ppc.exp: Run it. --- gas/ChangeLog | 6 ++++++ gas/testsuite/gas/ppc/genpcv.d | 14 ++++++++++++++ gas/testsuite/gas/ppc/genpcv.s | 6 ++++++ gas/testsuite/gas/ppc/ppc.exp | 1 + opcodes/ChangeLog | 5 +++++ opcodes/ppc-opc.c | 4 ++++ 6 files changed, 36 insertions(+) create mode 100644 gas/testsuite/gas/ppc/genpcv.d create mode 100644 gas/testsuite/gas/ppc/genpcv.s diff --git a/gas/ChangeLog b/gas/ChangeLog index c0a072a17f1..04eede4a6fb 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2020-05-11 Alan Modra + + * testsuite/gas/ppc/genpcv.d, + * testsuite/gas/ppc/genpcv.s: New test. + * testsuite/gas/ppc/ppc.exp: Run it. + 2020-05-11 Alan Modra * testsuite/gas/ppc/maskmanip.d, diff --git a/gas/testsuite/gas/ppc/genpcv.d b/gas/testsuite/gas/ppc/genpcv.d new file mode 100644 index 00000000000..a1982e7f7fe --- /dev/null +++ b/gas/testsuite/gas/ppc/genpcv.d @@ -0,0 +1,14 @@ +#as: -mpower10 +#objdump: -dr -Mpower10 +#name: PCV generate operations + +.* + + +Disassembly of section \.text: + +0+0 <_start>: +.*: (f2 03 7f 29|29 7f 03 f2) xxgenpcvbm vs48,v15,3 +.*: (f0 02 3f 2b|2b 3f 02 f0) xxgenpcvhm vs32,v7,2 +.*: (f2 01 1f 68|68 1f 01 f2) xxgenpcvwm vs16,v3,1 +.*: (f1 00 0f 6a|6a 0f 00 f1) xxgenpcvdm vs8,v1,0 diff --git a/gas/testsuite/gas/ppc/genpcv.s b/gas/testsuite/gas/ppc/genpcv.s new file mode 100644 index 00000000000..caada18b606 --- /dev/null +++ b/gas/testsuite/gas/ppc/genpcv.s @@ -0,0 +1,6 @@ + .text +_start: + xxgenpcvbm 48,15,3 + xxgenpcvhm 32,7,2 + xxgenpcvwm 16,3,1 + xxgenpcvdm 8,1,0 diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp index c250acfd3e3..6b4e11a9421 100644 --- a/gas/testsuite/gas/ppc/ppc.exp +++ b/gas/testsuite/gas/ppc/ppc.exp @@ -139,3 +139,4 @@ run_dump_test "int128" run_dump_test "simd_perm" run_dump_test "outerprod" run_dump_test "maskmanip" +run_dump_test "genpcv" diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 4336066d2e2..9db4c82cf99 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2020-05-11 Alan Modra + + * ppc-opc.c (powerpc_opcodes): Add xxgenpcvbm, xxgenpcvhm, + xxgenpcvwm, xxgenpcvdm. + 2020-05-11 Alan Modra * ppc-opc.c (MP, VXVAM_MASK): Define. diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c index 4e207b488f3..804d013e5b0 100644 --- a/opcodes/ppc-opc.c +++ b/opcodes/ppc-opc.c @@ -8038,11 +8038,15 @@ const struct powerpc_opcode powerpc_opcodes[] = { {"xvnmaddadp", XX3(60,225), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, {"xvcvdpuxds", XX2(60,456), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, {"xvcvspdp", XX2(60,457), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, +{"xxgenpcvbm", X(60,916), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}}, +{"xxgenpcvhm", X(60,917), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}}, {"xsiexpdp", X(60,918), XX1_MASK, PPCVSX3, PPCVLE, {XT6, RA, RB}}, {"xvmindp", XX3(60,232), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, {"xvnmaddmdp", XX3(60,233), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, {"xvcvdpsxds", XX2(60,472), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, {"xvabsdp", XX2(60,473), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, +{"xxgenpcvwm", X(60,948), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}}, +{"xxgenpcvdm", X(60,949), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}}, {"xvxexpdp", XX2VA(60,475,0),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, {"xvxsigdp", XX2VA(60,475,1),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, {"xxbrh", XX2VA(60,475,7),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, -- 2.30.2