This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH, MIPS] Add SIGRIE instructions for MIPS R6
- From: Robert Suchanek <Robert dot Suchanek at imgtec dot com>
- To: "binutils at sourceware dot org" <binutils at sourceware dot org>
- Cc: "rdsandiford at googlemail dot com" <rdsandiford at googlemail dot com>
- Date: Fri, 7 Aug 2015 14:24:40 +0000
- Subject: [PATCH, MIPS] Add SIGRIE instructions for MIPS R6
- Authentication-results: sourceware.org; auth=none
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