This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, PPC] Add some missing extended mnemonics.


The following patch adds a few extended mnemonics defined in the ISA docs
that were never added.  The xnop is described as being like a nop, but
is sent down the functional units unlike a normal nop instruction.
The other three extended mnemonics were new with POWER7.

This built and make checked with no regressions.  Is this ok for mainline?

Peter


opcodes/
	* ppc-opc.c <xnop, yield, mdoio, mdoom>: New extended mnemonics.

gas/testsuite/
	* gas/ppc/common.d ("nop", "xnop"): Add tests.
	* gas/ppc/common.s: Likewise.
	* gas/ppc/power7.d ("yield", "mdoio", "mdoom"): Add tests.
	* gas/ppc/power7.s: Likewise.

Index: opcodes/ppc-opc.c
===================================================================
RCS file: /cvs/src/src/opcodes/ppc-opc.c,v
retrieving revision 1.147
diff -u -p -r1.147 ppc-opc.c
--- opcodes/ppc-opc.c	25 Jul 2012 13:08:55 -0000	1.147
+++ opcodes/ppc-opc.c	14 Aug 2012 22:46:43 -0000
@@ -4139,6 +4139,7 @@ const struct powerpc_opcode powerpc_opco
 {"oris",	OP(25),		OP_MASK,     PPCCOM,	PPCNONE,	{RA, RS, UI}},
 {"oriu",	OP(25),		OP_MASK,     PWRCOM,	PPCNONE,	{RA, RS, UI}},
 
+{"xnop",	OP(26),		0xffffffff,  PPCCOM,	PPCNONE,	{0}},
 {"xori",	OP(26),		OP_MASK,     PPCCOM,	PPCNONE,	{RA, RS, UI}},
 {"xoril",	OP(26),		OP_MASK,     PWRCOM,	PPCNONE,	{RA, RS, UI}},
 
@@ -4924,6 +4925,11 @@ const struct powerpc_opcode powerpc_opco
 
 {"miso",	0x7f5ad378,	0xffffffff,  E6500,	PPCNONE,	{0}},
 
+/* The "yield", "mdoio" and "mdoom" instructions are extended mnemonics for
+   "or rX,rX,rX", with rX being r27, r29 and r30 respectively.  */
+{"yield",	0x7f7bdb78,	0xffffffff,  POWER7,	 PPCNONE,	{0}},
+{"mdoio",	0x7fbdeb78,	0xffffffff,  POWER7,	 PPCNONE,	{0}},
+{"mdoom",	0x7fdef378,	0xffffffff,  POWER7,	 PPCNONE,	{0}},
 {"mr",		XRC(31,444,0),	X_MASK,      COM|PPCVLE, PPCNONE,	{RA, RS, RBS}},
 {"or",		XRC(31,444,0),	X_MASK,      COM|PPCVLE, PPCNONE,	{RA, RS, RB}},
 {"mr.",		XRC(31,444,1),	X_MASK,      COM|PPCVLE, PPCNONE,	{RA, RS, RBS}},
Index: gas/testsuite/gas/ppc/common.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/common.d,v
retrieving revision 1.2
diff -u -p -r1.2 common.d
--- gas/testsuite/gas/ppc/common.d	10 Mar 2009 06:53:46 -0000	1.2
+++ gas/testsuite/gas/ppc/common.d	14 Aug 2012 22:46:42 -0000
@@ -188,3 +188,7 @@ Disassembly of section \.text:
  2c4:	7d 8d 73 2e 	sthx    r12,r13,r14
  2c8:	7f dd fa 79 	xor.    r29,r30,r31
  2cc:	7f dd fa 78 	xor     r29,r30,r31
+ 2d0:	60 00 00 00 	nop
+ 2d4:	60 00 00 00 	nop
+ 2d8:	68 00 00 00 	xnop
+ 2dc:	68 00 00 00 	xnop
Index: gas/testsuite/gas/ppc/common.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/common.s,v
retrieving revision 1.1
diff -u -p -r1.1 common.s
--- gas/testsuite/gas/ppc/common.s	9 Sep 2008 13:25:05 -0000	1.1
+++ gas/testsuite/gas/ppc/common.s	14 Aug 2012 22:46:42 -0000
@@ -180,3 +180,7 @@ start:
 	sthx	12,13,14
 	xor.	29,30,31
 	xor	29,30,31
+	nop
+	ori	0,0,0
+	xnop
+	xori	0,0,0
Index: gas/testsuite/gas/ppc/power7.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/power7.d,v
retrieving revision 1.4
diff -u -p -r1.4 power7.d
--- gas/testsuite/gas/ppc/power7.d	29 Sep 2009 13:19:10 -0000	1.4
+++ gas/testsuite/gas/ppc/power7.d	14 Aug 2012 22:46:42 -0000
@@ -111,3 +111,9 @@ Disassembly of section \.text:
  194:	60 00 00 00 	nop
  198:	60 00 00 00 	nop
  19c:	60 42 00 00 	ori     r2,r2,0
+ 1a0:	7f 7b db 78 	yield
+ 1a4:	7f 7b db 78 	yield
+ 1a8:	7f bd eb 78 	mdoio
+ 1ac:	7f bd eb 78 	mdoio
+ 1b0:	7f de f3 78 	mdoom
+ 1b4:	7f de f3 78 	mdoom
Index: gas/testsuite/gas/ppc/power7.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/power7.s,v
retrieving revision 1.4
diff -u -p -r1.4 power7.s
--- gas/testsuite/gas/ppc/power7.s	29 Sep 2009 13:19:10 -0000	1.4
+++ gas/testsuite/gas/ppc/power7.s	14 Aug 2012 22:46:42 -0000
@@ -102,3 +102,9 @@ power7:
 	isel	  2,3,4,28
 	ori	  2,2,0
 	.p2align 4,,15
+	yield
+	or	  27,27,27
+	mdoio
+	or	  29,29,29
+	mdoom
+	or	  30,30,30


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]