This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH, PPC] Add some missing extended mnemonics.
- From: Peter Bergner <bergner at vnet dot ibm dot com>
- To: binutils at sourceware dot org
- Cc: Alan Modra <amodra at gmail dot com>
- Date: Tue, 14 Aug 2012 18:33:45 -0500
- Subject: [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