--- /dev/null
+#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric -mmips:5900
+#name: MIPS R5900 VU0
+#as: -march=r5900
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> d8000000 lqc2 \$0,0\(\$0\)
+[0-9a-f]+ <[^>]*> d8217fff lqc2 \$1,32767\(\$1\)
+[0-9a-f]+ <[^>]*> d9088000 lqc2 \$8,-32768\(\$8\)
+[0-9a-f]+ <[^>]*> dbffffff lqc2 \$31,-1\(\$31\)
+[0-9a-f]+ <[^>]*> 3c010001 lui \$1,0x1
+[0-9a-f]+ <[^>]*> 00220821 addu \$1,\$1,\$2
+[0-9a-f]+ <[^>]*> d8208000 lqc2 \$0,-32768\(\$1\)
+[0-9a-f]+ <[^>]*> 3c01ffff lui \$1,0xffff
+[0-9a-f]+ <[^>]*> 003f0821 addu \$1,\$1,\$31
+[0-9a-f]+ <[^>]*> d8287fff lqc2 \$8,32767\(\$1\)
+[0-9a-f]+ <[^>]*> 3c01f123 lui \$1,0xf123
+[0-9a-f]+ <[^>]*> 00240821 addu \$1,\$1,\$4
+[0-9a-f]+ <[^>]*> d83f4567 lqc2 \$31,17767\(\$1\)
+[0-9a-f]+ <[^>]*> f8000000 sqc2 \$0,0\(\$0\)
+[0-9a-f]+ <[^>]*> f8217fff sqc2 \$1,32767\(\$1\)
+[0-9a-f]+ <[^>]*> f9088000 sqc2 \$8,-32768\(\$8\)
+[0-9a-f]+ <[^>]*> fbffffff sqc2 \$31,-1\(\$31\)
+[0-9a-f]+ <[^>]*> 3c010001 lui \$1,0x1
+[0-9a-f]+ <[^>]*> 00220821 addu \$1,\$1,\$2
+[0-9a-f]+ <[^>]*> f8208000 sqc2 \$0,-32768\(\$1\)
+[0-9a-f]+ <[^>]*> 3c01ffff lui \$1,0xffff
+[0-9a-f]+ <[^>]*> 003f0821 addu \$1,\$1,\$31
+[0-9a-f]+ <[^>]*> f8287fff sqc2 \$8,32767\(\$1\)
+[0-9a-f]+ <[^>]*> 3c01f123 lui \$1,0xf123
+[0-9a-f]+ <[^>]*> 00240821 addu \$1,\$1,\$4
+[0-9a-f]+ <[^>]*> f83f4567 sqc2 \$31,17767\(\$1\)
+[0-9a-f]+ <[^>]*> 48400000 cfc2 \$0,\$0
+[0-9a-f]+ <[^>]*> 4840f800 cfc2 \$0,\$31
+[0-9a-f]+ <[^>]*> 48400001 cfc2.i \$0,\$0
+[0-9a-f]+ <[^>]*> 4840f801 cfc2.i \$0,\$31
+[0-9a-f]+ <[^>]*> 48400000 cfc2 \$0,\$0
+[0-9a-f]+ <[^>]*> 4840f800 cfc2 \$0,\$31
+[0-9a-f]+ <[^>]*> 48c00000 ctc2 \$0,\$0
+[0-9a-f]+ <[^>]*> 48c0f800 ctc2 \$0,\$31
+[0-9a-f]+ <[^>]*> 48c00001 ctc2.i \$0,\$0
+[0-9a-f]+ <[^>]*> 48c0f801 ctc2.i \$0,\$31
+[0-9a-f]+ <[^>]*> 48c00000 ctc2 \$0,\$0
+[0-9a-f]+ <[^>]*> 48c0f800 ctc2 \$0,\$31
+[0-9a-f]+ <[^>]*> 48200000 qmfc2 \$0,\$0
+[0-9a-f]+ <[^>]*> 4820f800 qmfc2 \$0,\$31
+[0-9a-f]+ <[^>]*> 48200001 qmfc2.i \$0,\$0
+[0-9a-f]+ <[^>]*> 4820f801 qmfc2.i \$0,\$31
+[0-9a-f]+ <[^>]*> 48200000 qmfc2 \$0,\$0
+[0-9a-f]+ <[^>]*> 4820f800 qmfc2 \$0,\$31
+[0-9a-f]+ <[^>]*> 48a00000 qmtc2 \$0,\$0
+[0-9a-f]+ <[^>]*> 48a0f800 qmtc2 \$0,\$31
+[0-9a-f]+ <[^>]*> 48a00001 qmtc2.i \$0,\$0
+[0-9a-f]+ <[^>]*> 48a0f801 qmtc2.i \$0,\$31
+[0-9a-f]+ <[^>]*> 48a00000 qmtc2 \$0,\$0
+[0-9a-f]+ <[^>]*> 48a0f800 qmtc2 \$0,\$31
+[0-9a-f]+ <[^>]*> 4900ffff bc2f [0-9a-f]+ <branch_label>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4902fffd bc2fl [0-9a-f]+ <branch_label>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4901fffb bc2t [0-9a-f]+ <branch_label>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4903fff9 bc2tl [0-9a-f]+ <branch_label>
+[0-9a-f]+ <[^>]*> 00000000 nop
+ \.\.\.
{"lld", "t,A(b)", 0, (int) M_LLD_AB, INSN_MACRO, 0, I3, EE },
{"lq", "t,o(b)", 0x78000000, 0xfc000000, WR_t|RD_b, 0, MMI },
{"lq", "t,A(b)", 0, (int) M_LQ_AB, INSN_MACRO, 0, MMI },
+{"lqc2", "E,o(b)", 0xd8000000, 0xfc000000, RD_b|WR_C2, 0, EE },
+{"lqc2", "E,A(b)", 0, (int) M_LQC2_AB, INSN_MACRO, 0, EE },
{"lui", "t,u", 0x3c000000, 0xffe00000, WR_t, 0, I1 },
{"luxc1", "D,t(b)", 0x4c000005, 0xfc00f83f, LDD|WR_D|RD_t|RD_b|FP_D, 0, I5_33|N55},
{"lw", "t,o(b)", 0x8c000000, 0xfc000000, LDD|RD_b|WR_t, 0, I1 },
{"snei", "t,r,+Q", 0x7000002f, 0xfc00003f, WR_t|RD_s, 0, IOCT },
{"sq", "t,o(b)", 0x7c000000, 0xfc000000, SM|RD_t|RD_b, 0, MMI },
{"sq", "t,A(b)", 0, (int) M_SQ_AB, INSN_MACRO, 0, MMI },
+{"sqc2", "E,o(b)", 0xf8000000, 0xfc000000, SM|RD_C2|RD_b, 0, EE },
+{"sqc2", "E,A(b)", 0, (int) M_SQC2_AB, INSN_MACRO, 0, EE },
{"sqrt.d", "D,S", 0x46200004, 0xffff003f, WR_D|RD_S|FP_D, 0, I2, SF },
{"sqrt.s", "D,S", 0x46000004, 0xffff003f, WR_D|RD_S|FP_S, 0, I2 },
{"sqrt.ps", "D,S", 0x46c00004, 0xffff003f, WR_D|RD_S|FP_D, 0, SB1 },
/* Coprocessor 2 move/branch operations overlap with VR5400 .ob format
instructions so they are here for the latters to take precedence. */
-{"bc2f", "p", 0x49000000, 0xffff0000, CBD|RD_CC, 0, I1, IOCT|IOCTP|IOCT2|EE },
+{"bc2f", "p", 0x49000000, 0xffff0000, CBD|RD_CC, 0, I1, IOCT|IOCTP|IOCT2 },
{"bc2f", "N,p", 0x49000000, 0xffe30000, CBD|RD_CC, 0, I32, IOCT|IOCTP|IOCT2 },
-{"bc2fl", "p", 0x49020000, 0xffff0000, CBL|RD_CC, 0, I2|T3, IOCT|IOCTP|IOCT2|EE },
+{"bc2fl", "p", 0x49020000, 0xffff0000, CBL|RD_CC, 0, I2|T3, IOCT|IOCTP|IOCT2 },
{"bc2fl", "N,p", 0x49020000, 0xffe30000, CBL|RD_CC, 0, I32, IOCT|IOCTP|IOCT2 },
-{"bc2t", "p", 0x49010000, 0xffff0000, CBD|RD_CC, 0, I1, IOCT|IOCTP|IOCT2|EE },
+{"bc2t", "p", 0x49010000, 0xffff0000, CBD|RD_CC, 0, I1, IOCT|IOCTP|IOCT2 },
{"bc2t", "N,p", 0x49010000, 0xffe30000, CBD|RD_CC, 0, I32, IOCT|IOCTP|IOCT2 },
-{"bc2tl", "p", 0x49030000, 0xffff0000, CBL|RD_CC, 0, I2|T3, IOCT|IOCTP|IOCT2|EE },
+{"bc2tl", "p", 0x49030000, 0xffff0000, CBL|RD_CC, 0, I2|T3, IOCT|IOCTP|IOCT2 },
{"bc2tl", "N,p", 0x49030000, 0xffe30000, CBL|RD_CC, 0, I32, IOCT|IOCTP|IOCT2 },
-{"cfc2", "t,G", 0x48400000, 0xffe007ff, LCD|WR_t|RD_C2, 0, I1, IOCT|IOCTP|IOCT2|EE },
-{"ctc2", "t,G", 0x48c00000, 0xffe007ff, COD|RD_t|WR_CC, 0, I1, IOCT|IOCTP|IOCT2|EE },
+{"cfc2", "t,G", 0x48400000, 0xffe007ff, LCD|WR_t|RD_C2, 0, I1, IOCT|IOCTP|IOCT2 },
+{"cfc2.i", "t,G", 0x48400001, 0xffe007ff, LCD|WR_t|RD_C2, 0, EE },
+{"cfc2.ni", "t,G", 0x48400000, 0xffe007ff, LCD|WR_t|RD_C2, 0, EE },
+{"ctc2", "t,G", 0x48c00000, 0xffe007ff, COD|RD_t|WR_CC, 0, I1, IOCT|IOCTP|IOCT2 },
+{"ctc2.i", "t,G", 0x48c00001, 0xffe007ff, COD|RD_t|WR_CC, 0, EE },
+{"ctc2.ni", "t,G", 0x48c00000, 0xffe007ff, COD|RD_t|WR_CC, 0, EE },
{"dmfc2", "t,i", 0x48200000, 0xffe00000, LCD|WR_t|RD_C2, 0, IOCT },
{"dmfc2", "t,G", 0x48200000, 0xffe007ff, LCD|WR_t|RD_C2, 0, I3, IOCT|IOCTP|IOCT2|EE },
{"dmfc2", "t,G,H", 0x48200000, 0xffe007f8, LCD|WR_t|RD_C2, 0, I64, IOCT|IOCTP|IOCT2 },
{"mthc2", "t,G", 0x48e00000, 0xffe007ff, COD|RD_t|WR_C2|WR_CC, 0, I33, IOCT|IOCTP|IOCT2 },
{"mthc2", "t,G,H", 0x48e00000, 0xffe007f8, COD|RD_t|WR_C2|WR_CC, 0, I33, IOCT|IOCTP|IOCT2 },
{"mthc2", "t,i", 0x48e00000, 0xffe00000, COD|RD_t|WR_C2|WR_CC, 0, I33, IOCT|IOCTP|IOCT2 },
-
+{"qmfc2", "t,G", 0x48200000, 0xffe007ff, WR_t|RD_C2, 0, EE },
+{"qmfc2.i", "t,G", 0x48200001, 0xffe007ff, WR_t|RD_C2, 0, EE },
+{"qmfc2.ni","t,G", 0x48200000, 0xffe007ff, WR_t|RD_C2, 0, EE },
+{"qmtc2", "t,G", 0x48a00000, 0xffe007ff, RD_t|WR_C2, 0, EE },
+{"qmtc2.i", "t,G", 0x48a00001, 0xffe007ff, RD_t|WR_C2, 0, EE },
+{"qmtc2.ni","t,G", 0x48a00000, 0xffe007ff, RD_t|WR_C2, 0, EE },
/* Coprocessor 3 move/branch operations overlap with MIPS IV COP1X
instructions, so they are here for the latters to take precedence. */
{"bc3f", "p", 0x4d000000, 0xffff0000, CBD|RD_CC, 0, I1, IOCT|IOCTP|IOCT2|EE },