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, MIPS] Add SIGRIE instructions for MIPS R6


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


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