[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