[PATCH] Add MIPS32r2/MT ASE pause instruction
Andrew Pinski
andrew.pinski@caviumnetworks.com
Wed Dec 7 22:44:00 GMT 2011
Hi,
This patch adds the MIPS32r2 (or MT ASE) pause instruction. Since
we already have an encoding in the micromips, nothing is needed to be
done there.
OK? Tested for mips64-linux-gnu with no regressions.
Thanks,
Andrew Pinski
opcodes/ChangeLog:
* mips-opc.c (mips_builtin_opcodes): Add "pause".
gas/testsuite/ChangeLog:
* gas/mips/mips32-mt.d: Add pause instruction encoding to the end.
* gas/mips/micromips@mips32r2.d: Likewise.
* gas/mips/mips32r2.d: Likewise.
* gas/mips/mips32-mt.s: Add pause instruction to the end.
* gas/mips/mips32r2.s: Likewise.
-------------- next part --------------
? gas/testsuite/gas/mips/.mips32-mt.d.swp
? opcodes/.mips-opc.c.swp
Index: gas/testsuite/gas/mips/micromips@mips32r2.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/mips/micromips@mips32r2.d,v
retrieving revision 1.1
diff -u -p -r1.1 micromips@mips32r2.d
--- gas/testsuite/gas/mips/micromips@mips32r2.d 24 Jul 2011 14:20:09 -0000 1.1
+++ gas/testsuite/gas/mips/micromips@mips32r2.d 7 Dec 2011 22:39:49 -0000
@@ -41,4 +41,5 @@ Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 000a 577c ei \$10
[0-9a-f]+ <[^>]*> 0159 e17c rdpgpr \$10,\$25
[0-9a-f]+ <[^>]*> 0159 f17c wrpgpr \$10,\$25
+[0-9a-f]+ <[^>]*> 0000 2800 pause
\.\.\.
Index: gas/testsuite/gas/mips/mips32-mt.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/mips/mips32-mt.d,v
retrieving revision 1.5
diff -u -p -r1.5 mips32-mt.d
--- gas/testsuite/gas/mips/mips32-mt.d 6 Feb 2008 05:29:03 -0000 1.5
+++ gas/testsuite/gas/mips/mips32-mt.d 7 Dec 2011 22:39:49 -0000
@@ -631,4 +631,5 @@ Disassembly of section .text:
0+09b0 <[^>]*> 418d7035 mttr t5,t6,1,5,1
0+09b4 <[^>]*> 418d7036 mttr t5,t6,1,6,1
0+09b8 <[^>]*> 418d7037 mttr t5,t6,1,7,1
+0+09bc <[^>]*> 00000140 pause
\.\.\.
Index: gas/testsuite/gas/mips/mips32-mt.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/mips/mips32-mt.s,v
retrieving revision 1.2
diff -u -p -r1.2 mips32-mt.s
--- gas/testsuite/gas/mips/mips32-mt.s 5 Jun 2006 16:28:36 -0000 1.2
+++ gas/testsuite/gas/mips/mips32-mt.s 7 Dec 2011 22:39:50 -0000
@@ -630,5 +630,7 @@ text_label:
mttr $13,$14,1,6,1
mttr $13,$14,1,7,1
+ pause
+
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.space 8
Index: gas/testsuite/gas/mips/mips32r2.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/mips/mips32r2.d,v
retrieving revision 1.5
diff -u -p -r1.5 mips32r2.d
--- gas/testsuite/gas/mips/mips32r2.d 7 Jul 2008 19:28:02 -0000 1.5
+++ gas/testsuite/gas/mips/mips32r2.d 7 Dec 2011 22:39:50 -0000
@@ -40,4 +40,5 @@ Disassembly of section .text:
0+0078 <[^>]*> 416a6020 ei \$10
0+007c <[^>]*> 41595000 rdpgpr \$10,\$25
0+0080 <[^>]*> 41d95000 wrpgpr \$10,\$25
+0+0084 <[^>]*> 00000140 pause
...
Index: gas/testsuite/gas/mips/mips32r2.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/mips/mips32r2.s,v
retrieving revision 1.3
diff -u -p -r1.3 mips32r2.s
--- gas/testsuite/gas/mips/mips32r2.s 7 Jul 2008 19:28:02 -0000 1.3
+++ gas/testsuite/gas/mips/mips32r2.s 7 Dec 2011 22:39:50 -0000
@@ -63,5 +63,7 @@ text_label:
wrpgpr $10, $25
+ pause
+
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.space 8
Index: opcodes/mips-opc.c
===================================================================
RCS file: /cvs/src/src/opcodes/mips-opc.c,v
retrieving revision 1.89
diff -u -p -r1.89 mips-opc.c
--- opcodes/mips-opc.c 29 Nov 2011 20:28:55 -0000 1.89
+++ opcodes/mips-opc.c 7 Dec 2011 22:39:50 -0000
@@ -1169,6 +1169,7 @@ const struct mips_opcode mips_builtin_op
{"ori", "t,r,i", 0x34000000, 0xfc000000, WR_t|RD_s, 0, I1 },
{"pabsdiff.ob", "X,Y,Q",0x78000009, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, 0, SB1 },
{"pabsdiffc.ob", "Y,Q", 0x78000035, 0xfc2007ff, RD_S|RD_T|FP_D, WR_MACC, SB1 },
+{"pause", "", 0x00000140, 0xffffffff, TRAP, 0, I33|MT32},
{"pavg.ob", "X,Y,Q", 0x78000008, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, 0, SB1 },
{"pickf.ob", "X,Y,Q", 0x78000002, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, 0, MX|SB1 },
{"pickf.ob", "D,S,T", 0x4ac00002, 0xffe0003f, WR_D|RD_S|RD_T, 0, N54 },
More information about the Binutils
mailing list