[PATCH, MIPS] Add SIGRIE instructions for MIPS R6

Robert Suchanek Robert.Suchanek@imgtec.com
Fri Aug 7 14:24:00 GMT 2015


Hi,

This patch adds SIGRIE instruction that was introduced in MIPS R6 architecture.

Documentation for the new instruction can be found in "The MIPS32 Instruction Set v6.02"
document available from:

http://imgtec.com/mips/architectures/mips32/

Ok to apply?

Regards,
Robert

opcodes/

	* mips-opc.c (mips_builtin_opcodes): Add "sigrie".

gas/testsuite/

	* gas/mips/r6.s: Add tests for "sigrie".
	* gas/mips/r6.d: Check for "sigrie".
	* gas/mips/r6-n32.d: Likewise.
	* gas/mips/r6-n64.d: Likewise.
---
 gas/testsuite/gas/mips/r6-n32.d | 2 ++
 gas/testsuite/gas/mips/r6-n64.d | 2 ++
 gas/testsuite/gas/mips/r6.d     | 2 ++
 gas/testsuite/gas/mips/r6.s     | 3 +++
 opcodes/mips-opc.c              | 1 +
 5 files changed, 10 insertions(+)

diff --git a/gas/testsuite/gas/mips/r6-n32.d b/gas/testsuite/gas/mips/r6-n32.d
index acca6c4..fb55086 100644
--- a/gas/testsuite/gas/mips/r6-n32.d
+++ b/gas/testsuite/gas/mips/r6-n32.d
@@ -497,4 +497,6 @@ Disassembly of section .text:
 0+0598 <[^>]*> 41600024 	dvp
 0+059c <[^>]*> 41620004 	evp	v0
 0+05a0 <[^>]*> 41620024 	dvp	v0
+0+05a4 <[^>]*> 41700000 	sigrie	0x0
+0+05a8 <[^>]*> 4170ffff 	sigrie	0xffff
 	\.\.\.
diff --git a/gas/testsuite/gas/mips/r6-n64.d b/gas/testsuite/gas/mips/r6-n64.d
index 10deeae..fd4da21 100644
--- a/gas/testsuite/gas/mips/r6-n64.d
+++ b/gas/testsuite/gas/mips/r6-n64.d
@@ -753,4 +753,6 @@ Disassembly of section .text:
 0+0598 <[^>]*> 41600024 	dvp
 0+059c <[^>]*> 41620004 	evp	v0
 0+05a0 <[^>]*> 41620024 	dvp	v0
+0+05a4 <[^>]*> 41700000 	sigrie	0x0
+0+05a8 <[^>]*> 4170ffff 	sigrie	0xffff
 	\.\.\.
diff --git a/gas/testsuite/gas/mips/r6.d b/gas/testsuite/gas/mips/r6.d
index cca10a7..8588e92 100644
--- a/gas/testsuite/gas/mips/r6.d
+++ b/gas/testsuite/gas/mips/r6.d
@@ -496,4 +496,6 @@ Disassembly of section .text:
 0+0598 <[^>]*> 41600024 	dvp
 0+059c <[^>]*> 41620004 	evp	v0
 0+05a0 <[^>]*> 41620024 	dvp	v0
+0+05a4 <[^>]*> 41700000 	sigrie	0x0
+0+05a8 <[^>]*> 4170ffff 	sigrie	0xffff
 	\.\.\.
diff --git a/gas/testsuite/gas/mips/r6.s b/gas/testsuite/gas/mips/r6.s
index 0635066..9fc5fcd 100644
--- a/gas/testsuite/gas/mips/r6.s
+++ b/gas/testsuite/gas/mips/r6.s
@@ -266,6 +266,9 @@ new:	maddf.s	$f0,$f1,$f2
 	evp	$2
 	dvp	$2
 
+	sigrie	0
+	sigrie	0xffff
+
 # Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
 	.align  2
 	.space  8
diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c
index a0b0e26..7349ade 100644
--- a/opcodes/mips-opc.c
+++ b/opcodes/mips-opc.c
@@ -1858,6 +1858,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
 {"shfl.repa.qh",	"X,Y,Z",	0x7b20001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,	0,		0,		MX,	0 },
 {"shfl.repb.qh",	"X,Y,Z",	0x7ba0001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,	0,		0,		MX,	0 },
 {"shfl.upsl.ob",	"X,Y,Z",	0x78c0001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,	0,		SB1,		MX,	0 },
+{"sigrie",		"u",		0x41700000, 0xffff0000,	TRAP,			0,		I37,		0,	0 },
 {"sle",			"d,v,t",	0,    (int) M_SLE,	INSN_MACRO,		0,		I1,		0,	0 },
 {"sle",			"d,v,I",	0,    (int) M_SLE_I,	INSN_MACRO,		0,		I1,		0,	0 },
 {"sle",			"S,T",		0x46a0003e, 0xffe007ff,	RD_1|RD_2|WR_CC|FP_D,	0,		IL2E,		0,	0 },
-- 
2.4.5



More information about the Binutils mailing list