|
|
a094f6 |
commit 19dfcc89e8d94526f011242041b700ede8834996
|
|
|
a094f6 |
Author: Peter Bergner <bergner@vnet.ibm.com>
|
|
|
a094f6 |
Date: Thu May 26 19:06:51 2016 -0500
|
|
|
a094f6 |
|
|
|
a094f6 |
Add support for new POWER ISA 3.0 instructions.
|
|
|
a094f6 |
|
|
|
a094f6 |
opcodes/
|
|
|
a094f6 |
|
|
|
a094f6 |
* ppc-opc.c (CY): New define. Document it.
|
|
|
a094f6 |
(powerpc_opcodes) <addex[.], lwzmx, vmsumudm>: New mnemonics.
|
|
|
a094f6 |
|
|
|
a094f6 |
gas/
|
|
|
a094f6 |
* testsuite/gas/ppc/altivec3.d <vmsumudm>: Add test.
|
|
|
a094f6 |
* testsuite/gas/ppc/altivec3.s: Likewise.
|
|
|
a094f6 |
* testsuite/gas/ppc/power9.d <addex[.], lwzmx, vmsumudm>: Add tests.
|
|
|
a094f6 |
* testsuite/gas/ppc/power9.s: Likewise.
|
|
|
a094f6 |
|
|
|
a094f6 |
### a/opcodes/ChangeLog
|
|
|
a094f6 |
### b/opcodes/ChangeLog
|
|
|
a094f6 |
## -1,3 +1,8 @@
|
|
|
a094f6 |
+2016-05-26 Peter Bergner <bergner@vnet.ibm.com>
|
|
|
a094f6 |
+
|
|
|
a094f6 |
+ * ppc-opc.c (CY): New define. Document it.
|
|
|
a094f6 |
+ (powerpc_opcodes) <addex[.], lwzmx, vmsumudm>: New mnemonics.
|
|
|
a094f6 |
+
|
|
|
a094f6 |
2016-05-25 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
a094f6 |
|
|
|
a094f6 |
* i386-gen.c (cpu_flag_init): Add CpuVREX to CPU_AVX512DQ_FLAGS,
|
|
|
a094f6 |
--- a/opcodes/ppc-opc.c
|
|
|
a094f6 |
+++ b/opcodes/ppc-opc.c
|
|
|
a094f6 |
@@ -815,7 +815,9 @@ const struct powerpc_operand powerpc_operands[] =
|
|
|
a094f6 |
#define X_R A_L
|
|
|
a094f6 |
{ 0x1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL },
|
|
|
a094f6 |
|
|
|
a094f6 |
+ /* The RMC or CY field in a Z23 form instruction. */
|
|
|
a094f6 |
#define RMC A_L + 1
|
|
|
a094f6 |
+#define CY RMC
|
|
|
a094f6 |
{ 0x3, 9, NULL, NULL, 0 },
|
|
|
a094f6 |
|
|
|
a094f6 |
#define R RMC + 1
|
|
|
a094f6 |
@@ -3145,6 +3147,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
|
|
a094f6 |
{"vmhaddshs", VXA(4, 32), VXA_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB, VC}},
|
|
|
a094f6 |
{"vmhraddshs", VXA(4, 33), VXA_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB, VC}},
|
|
|
a094f6 |
{"vmladduhm", VXA(4, 34), VXA_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB, VC}},
|
|
|
a094f6 |
+{"vmsumudm", VXA(4, 35), VXA_MASK, PPCVEC3, PPCNONE, {VD, VA, VB, VC}},
|
|
|
a094f6 |
{"ps_div", A (4, 18,0), AFRC_MASK, PPCPS, PPCNONE, {FRT, FRA, FRB}},
|
|
|
a094f6 |
{"vmsumubm", VXA(4, 36), VXA_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB, VC}},
|
|
|
a094f6 |
{"ps_div.", A (4, 18,1), AFRC_MASK, PPCPS, PPCNONE, {FRT, FRA, FRB}},
|
|
|
a094f6 |
@@ -4977,6 +4980,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
|
|
a094f6 |
{"stvehx", X(31,167), X_MASK, PPCVEC, PPCNONE, {VS, RA0, RB}},
|
|
|
a094f6 |
{"sthfcmx", APU(31,167,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}},
|
|
|
a094f6 |
|
|
|
a094f6 |
+{"addex", ZRC(31,170,0), Z2_MASK, POWER9, PPCNONE, {RT, RA, RB, CY}},
|
|
|
a094f6 |
+{"addex.", ZRC(31,170,1), Z2_MASK, POWER9, PPCNONE, {RT, RA, RB, CY}},
|
|
|
a094f6 |
+
|
|
|
a094f6 |
{"msgclrp", XRTRA(31,174,0,0), XRTRA_MASK, POWER8, PPCNONE, {RB}},
|
|
|
a094f6 |
{"dcbtlse", X(31,174), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
|
|
|
a094f6 |
|
|
|
a094f6 |
@@ -5504,6 +5510,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
|
|
a094f6 |
|
|
|
a094f6 |
{"mtvsrdd", X(31,435), XX1_MASK, PPCVSX3, PPCNONE, {XT6, RA0, RB}},
|
|
|
a094f6 |
|
|
|
a094f6 |
+{"lwzmx", X(31,437), X_MASK, POWER9, PPCNONE, {RT, RA0, RB}},
|
|
|
a094f6 |
+
|
|
|
a094f6 |
{"ecowx", X(31,438), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
|
|
|
a094f6 |
|
|
|
a094f6 |
{"sthux", X(31,439), X_MASK, COM|PPCVLE, PPCNONE, {RS, RAS, RB}},
|