Index: lib/Target/Mips/AsmParser/MipsAsmParser.cpp =================================================================== --- lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -1144,7 +1144,15 @@ (R0 == Mips::A0 && R1 == Mips::S6) || (R0 == Mips::A0 && R1 == Mips::A1) || (R0 == Mips::A0 && R1 == Mips::A2) || - (R0 == Mips::A0 && R1 == Mips::A3)) + (R0 == Mips::A0 && R1 == Mips::A3) || + (R0 == Mips::A1_64 && R1 == Mips::A2_64) || + (R0 == Mips::A1_64 && R1 == Mips::A3_64) || + (R0 == Mips::A2_64 && R1 == Mips::A3_64) || + (R0 == Mips::A0_64 && R1 == Mips::S5_64) || + (R0 == Mips::A0_64 && R1 == Mips::S6_64) || + (R0 == Mips::A0_64 && R1 == Mips::A1_64) || + (R0 == Mips::A0_64 && R1 == Mips::A2_64) || + (R0 == Mips::A0_64 && R1 == Mips::A3_64)) return true; return false; Index: lib/Target/Mips/MicroMipsInstrInfo.td =================================================================== --- lib/Target/Mips/MicroMipsInstrInfo.td +++ lib/Target/Mips/MicroMipsInstrInfo.td @@ -1031,4 +1031,7 @@ (TLTU_MM GPR32Opnd:$rs, GPR32Opnd:$rt, 0), 1>; def : MipsInstAlias<"tne $rs, $rt", (TNE_MM GPR32Opnd:$rs, GPR32Opnd:$rt, 0), 1>; +def : MipsInstAlias<"rotr $rt, $imm", + (ROTR_MM GPR32Opnd:$rt, GPR32Opnd:$rt, uimm5:$imm), 0>; +def : MipsInstAlias<"syscall", (SYSCALL_MM 0), 1>; } Index: lib/Target/Mips/Mips32r6InstrInfo.td =================================================================== --- lib/Target/Mips/Mips32r6InstrInfo.td +++ lib/Target/Mips/Mips32r6InstrInfo.td @@ -757,8 +757,8 @@ def JR_HB_R6 : JR_HB_R6_ENC, JR_HB_R6_DESC, ISA_MIPS32R6; let AdditionalPredicates = [NotInMicroMips] in { def LDC2_R6 : LDC2_R6_ENC, LDC2_R6_DESC, ISA_MIPS32R6; + def LL_R6 : LL_R6_ENC, LL_R6_DESC, ISA_MIPS32R6; } -def LL_R6 : LL_R6_ENC, LL_R6_DESC, ISA_MIPS32R6; def LSA_R6 : R6MMR6Rel, LSA_R6_ENC, LSA_R6_DESC, ISA_MIPS32R6; def LWC2_R6 : LWC2_R6_ENC, LWC2_R6_DESC, ISA_MIPS32R6; def LWPC : R6MMR6Rel, LWPC_ENC, LWPC_DESC, ISA_MIPS32R6; @@ -792,10 +792,8 @@ let AdditionalPredicates = [NotInMicroMips] in { def RINT_D : RINT_D_ENC, RINT_D_DESC, ISA_MIPS32R6, HARDFLOAT; def RINT_S : RINT_S_ENC, RINT_S_DESC, ISA_MIPS32R6, HARDFLOAT; -} -def SC_R6 : SC_R6_ENC, SC_R6_DESC, ISA_MIPS32R6; -let AdditionalPredicates = [NotInMicroMips] in { -def SDBBP_R6 : SDBBP_R6_ENC, SDBBP_R6_DESC, ISA_MIPS32R6; + def SC_R6 : SC_R6_ENC, SC_R6_DESC, ISA_MIPS32R6; + def SDBBP_R6 : SDBBP_R6_ENC, SDBBP_R6_DESC, ISA_MIPS32R6; } def SDC2_R6 : SDC2_R6_ENC, SDC2_R6_DESC, ISA_MIPS32R6; def SELEQZ : R6MMR6Rel, SELEQZ_ENC, SELEQZ_DESC, ISA_MIPS32R6, GPR_32; Index: lib/Target/Mips/MipsInstrInfo.td =================================================================== --- lib/Target/Mips/MipsInstrInfo.td +++ lib/Target/Mips/MipsInstrInfo.td @@ -1705,11 +1705,13 @@ SRLV_FM<7, 0>; // Rotate Instructions -def ROTR : MMRel, shift_rotate_imm<"rotr", uimm5, GPR32Opnd, II_ROTR, rotr, - immZExt5>, - SRA_FM<2, 1>, ISA_MIPS32R2; -def ROTRV : MMRel, shift_rotate_reg<"rotrv", GPR32Opnd, II_ROTRV, rotr>, - SRLV_FM<6, 1>, ISA_MIPS32R2; +let AdditionalPredicates = [NotInMicroMips] in { + def ROTR : MMRel, shift_rotate_imm<"rotr", uimm5, GPR32Opnd, II_ROTR, rotr, + immZExt5>, + SRA_FM<2, 1>, ISA_MIPS32R2; + def ROTRV : MMRel, shift_rotate_reg<"rotrv", GPR32Opnd, II_ROTRV, rotr>, + SRLV_FM<6, 1>, ISA_MIPS32R2; +} /// Load and Store Instructions /// aligned @@ -2223,7 +2225,9 @@ (BEQ GPR32Opnd:$rs, ZERO, brtarget:$offset), 0>; def : MipsInstAlias<"beqzl $rs,$offset", (BEQL GPR32Opnd:$rs, ZERO, brtarget:$offset), 0>; -def : MipsInstAlias<"syscall", (SYSCALL 0), 1>; +let AdditionalPredicates = [NotInMicroMips] in { + def : MipsInstAlias<"syscall", (SYSCALL 0), 1>; +} def : MipsInstAlias<"break", (BREAK 0, 0), 1>; def : MipsInstAlias<"break $imm", (BREAK uimm10:$imm, 0), 1>; Index: test/MC/Disassembler/Mips/micromips32r3/valid-el.txt =================================================================== --- test/MC/Disassembler/Mips/micromips32r3/valid-el.txt +++ test/MC/Disassembler/Mips/micromips32r3/valid-el.txt @@ -189,3 +189,5 @@ 0x04 0x63 0x02 0x64 # CHECK: lwle $24, 2($4) 0x44 0x60 0x08 0x6c # CHECK: lle $2, 8($4) 0x44 0x60 0x08 0xac # CHECK: sce $2, 8($4) +0x00 0x00 0x7c 0x8b # CHECK: syscall +0x8c 0x01 0x7c 0x8b # CHECK: syscall 396 Index: test/MC/Disassembler/Mips/micromips32r3/valid.txt =================================================================== --- test/MC/Disassembler/Mips/micromips32r3/valid.txt +++ test/MC/Disassembler/Mips/micromips32r3/valid.txt @@ -189,3 +189,5 @@ 0x63 0x04 0x64 0x02 # CHECK: lwle $24, 2($4) 0x60 0x44 0x6c 0x08 # CHECK: lle $2, 8($4) 0x60 0x44 0xac 0x08 # CHECK: sce $2, 8($4) +0x00 0x00 0x8b 0x7c # CHECK: syscall +0x01 0x8c 0x8b 0x7c # CHECK: syscall 396 Index: test/MC/Disassembler/Mips/micromips32r6/valid.txt =================================================================== --- test/MC/Disassembler/Mips/micromips32r6/valid.txt +++ test/MC/Disassembler/Mips/micromips32r6/valid.txt @@ -9,276 +9,274 @@ 0x4c 0x01 # CHECK: addiusp 1024 0x4c 0x03 # CHECK: addiusp 1028 0x4f 0xf9 # CHECK: addiusp -16 +0x04 0xcc # CHECK: addu16 $6, $17, $4 +0x44 0x21 # CHECK: and16 $16, $2 +0x2e 0x56 # CHECK: andi16 $4, $5, 8 0xcc 0x42 # CHECK: bc16 132 0x8f 0x0a # CHECK: beqzc16 $6, 20 0xaf 0x0a # CHECK: bnezc16 $6, 20 +0x46 0x1B # CHECK: break16 8 0x45 0x2b # CHECK: jalr $9 0x45 0x23 # CHECK: jrc16 $9 0x44 0xb3 # CHECK: jrcaddiusp 20 -0x65 0x88 # CHECK: lw $3, 32($gp) -0x48 0x66 # CHECK: lw $3, 24($sp) -0x6a 0x12 # CHECK: lw16 $4, 8($17) -0x29 0x82 # CHECK: lhu16 $3, 4($16) 0x09 0x94 # CHECK: lbu16 $3, 4($17) 0x09 0x9f # CHECK: lbu16 $3, -1($17) -0x04 0xcc # CHECK: addu16 $6, $17, $4 -0x44 0x21 # CHECK: and16 $16, $2 -0x2e 0x56 # CHECK: andi16 $4, $5, 8 +0x29 0x82 # CHECK: lhu16 $3, 4($16) +0xed 0xff # CHECK: li16 $3, -1 +0x48 0x66 # CHECK: lw $3, 24($sp) +0x65 0x88 # CHECK: lw $3, 32($gp) +0x6a 0x12 # CHECK: lw16 $4, 8($17) +0x45 0x22 # CHECK: lwm16 $16, $17, $ra, 8($sp) +0x0c 0x65 # CHECK: move16 $3, $5 +0x84 0x34 # CHECK: movep $5, $6, $2, $3 0x46 0x70 # CHECK: not16 $4, $7 0x45 0xf9 # CHECK: or16 $3, $7 +0x46 0x3b # CHECK: sdbbp16 8 +0x89 0x84 # CHECK: sb16 $3, 4($16) +0xaa 0x14 # CHECK: sh16 $4, 8($17) 0x25 0xe0 # CHECK: sll16 $3, $6, 8 0x25 0xe1 # CHECK: srl16 $3, $6, 8 +0x04 0x3b # CHECK: subu16 $5, $16, $3 +0xc8 0x9f # CHECK: sw $4, 124($sp) +0xea 0x11 # CHECK: sw16 $4, 4($17) +0xe8 0x11 # CHECK: sw16 $zero, 4($17) +0x45 0x2a # CHECK: swm16 $16, $17, $ra, 8($sp) +0x44 0xd8 # CHECK: xor16 $17, $5 +0x54 0x44 0x23 0x7b # CHECK: abs.d $f2, $f4 +0x54 0x65 0x03 0x7b # CHECK: abs.s $f3, $f5 0x00 0xa4 0x19 0x10 # CHECK: add $3, $4, $5 +0x54 0xc4 0x11 0x30 # CHECK: add.d $f2, $f4, $f6 +0x54 0xa4 0x18 0x30 # CHECK: add.s $f3, $f4, $f5 0x30 0x64 0x04 0xd2 # CHECK: addiu $3, $4, 1234 -0x00 0xa4 0x19 0x50 # CHECK: addu $3, $4, $5 0x78 0x80 0x00 0x19 # CHECK: addiupc $4, 100 +0x00 0xa4 0x19 0x50 # CHECK: addu $3, $4, $5 +0x00 0x43 0x24 0x1f # CHECK: align $4, $2, $3, 2 0x78 0x7f 0x00 0x38 # CHECK: aluipc $3, 56 0x78 0x7e 0xff 0xff # CHECK: auipc $3, -1 -0x00 0x43 0x24 0x1f # CHECK: align $4, $2, $3, 2 0x00 0xa4 0x1a 0x50 # CHECK: and $3, $4, $5 0xd0 0x64 0x04 0xd2 # CHECK: andi $3, $4, 1234 0x10 0x62 0xff 0xe9 # CHECK: aui $3, $2, -23 +0xb4 0x37 0x96 0xb8 # CHECK: balc 7286128 +0x94 0x37 0x96 0xb8 # CHECK: bc 7286128 0x74 0x40 0x02 0x9a # CHECK: beqzalc $2, 1332 -0x7c 0x40 0x02 0x9a # CHECK: bnezalc $2, 1332 +0x00 0x44 0x0b 0x3c # CHECK: bitswap $4, $2 0xc0 0x42 0x02 0x9a # CHECK: bgezalc $2, 1332 0xe0 0x40 0x02 0x9a # CHECK: bgtzalc $2, 1332 -0xe0 0x42 0x02 0x9a # CHECK: bltzalc $2, 1332 0xc0 0x40 0x02 0x9a # CHECK: blezalc $2, 1332 -0xb4 0x37 0x96 0xb8 # CHECK: balc 7286128 -0x94 0x37 0x96 0xb8 # CHECK: bc 7286128 -0x00 0x44 0x0b 0x3c # CHECK: bitswap $4, $2 +0xe0 0x42 0x02 0x9a # CHECK: bltzalc $2, 1332 +0x7c 0x40 0x02 0x9a # CHECK: bnezalc $2, 1332 0x00 0x00 0x00 0x07 # CHECK: break 0x00 0x07 0x00 0x07 # CHECK: break 7 0x00 0x07 0x01 0x47 # CHECK: break 7, 5 0x20 0x25 0x60 0x08 # CHECK: cache 1, 8($5) -0x01 0x65 0x4b 0x3c # CHECK: clo $11, $5 -0x03 0x80 0xe8 0x50 # CHECK: clz $sp, $gp +0x60 0x25 0xa6 0x08 # CHECK: cachee 1, 8($5) +0x54 0x44 0x53 0x3b # CHECK: ceil.l.d $f2, $f4 +0x54 0x65 0x13 0x3b # CHECK: ceil.l.s $f3, $f5 +0x54 0x44 0x5b 0x3b # CHECK: ceil.w.d $f2, $f4 +0x54 0x65 0x1b 0x3b # CHECK: ceil.w.s $f3, $f5 0x54 0x22 0x10 0x3b # CHECK: cfc1 $1, $2 0x00 0x64 0xcd 0x3c # CHECK: cfc2 $3, $4 0x54 0xa6 0x18 0x3b # CHECK: ctc1 $5, $6 0x00 0xe8 0xdd 0x3c # CHECK: ctc2 $7, $8 +0x54 0x82 0x02 0x60 # CHECK: class.d $f2, $f4 +0x54 0x62 0x00 0x60 # CHECK: class.s $f2, $f3 +0x01 0x65 0x4b 0x3c # CHECK: clo $11, $5 +0x03 0x80 0xe8 0x50 # CHECK: clz $sp, $gp +0x54 0x83 0x10 0x15 # CHECK: cmp.af.d $f2, $f3, $f4 +0x54 0x83 0x10 0x05 # CHECK: cmp.af.s $f2, $f3, $f4 +0x54 0x83 0x10 0x95 # CHECK: cmp.eq.d $f2, $f3, $f4 +0x54 0x83 0x10 0x85 # CHECK: cmp.eq.s $f2, $f3, $f4 +0x54 0x83 0x11 0x95 # CHECK: cmp.le.d $f2, $f3, $f4 +0x54 0x83 0x11 0x85 # CHECK: cmp.le.s $f2, $f3, $f4 +0x54 0x83 0x11 0x15 # CHECK: cmp.lt.d $f2, $f3, $f4 +0x54 0x83 0x11 0x05 # CHECK: cmp.lt.s $f2, $f3, $f4 +0x54 0x83 0x12 0x15 # CHECK: cmp.saf.d $f2, $f3, $f4 +0x54 0x83 0x12 0x05 # CHECK: cmp.saf.s $f2, $f3, $f4 +0x54 0x83 0x12 0x95 # CHECK: cmp.seq.d $f2, $f3, $f4 +0x54 0x83 0x12 0x85 # CHECK: cmp.seq.s $f2, $f3, $f4 +0x54 0x83 0x13 0x95 # CHECK: cmp.sle.d $f2, $f3, $f4 +0x54 0x83 0x13 0x85 # CHECK: cmp.sle.s $f2, $f3, $f4 +0x54 0x83 0x13 0x15 # CHECK: cmp.slt.d $f2, $f3, $f4 +0x54 0x83 0x13 0x05 # CHECK: cmp.slt.s $f2, $f3, $f4 +0x54 0x83 0x12 0xd5 # CHECK: cmp.sueq.d $f2, $f3, $f4 +0x54 0x83 0x12 0xc5 # CHECK: cmp.sueq.s $f2, $f3, $f4 +0x54 0x83 0x13 0xd5 # CHECK: cmp.sule.d $f2, $f3, $f4 +0x54 0x83 0x13 0xc5 # CHECK: cmp.sule.s $f2, $f3, $f4 +0x54 0x83 0x13 0x55 # CHECK: cmp.sult.d $f2, $f3, $f4 +0x54 0x83 0x13 0x45 # CHECK: cmp.sult.s $f2, $f3, $f4 +0x54 0x83 0x12 0x55 # CHECK: cmp.sun.d $f2, $f3, $f4 +0x54 0x83 0x12 0x45 # CHECK: cmp.sun.s $f2, $f3, $f4 +0x54 0x83 0x10 0xd5 # CHECK: cmp.ueq.d $f2, $f3, $f4 +0x54 0x83 0x10 0xc5 # CHECK: cmp.ueq.s $f2, $f3, $f4 +0x54 0x83 0x11 0xd5 # CHECK: cmp.ule.d $f2, $f3, $f4 +0x54 0x83 0x11 0xc5 # CHECK: cmp.ule.s $f2, $f3, $f4 +0x54 0x83 0x11 0x55 # CHECK: cmp.ult.d $f2, $f3, $f4 +0x54 0x83 0x11 0x45 # CHECK: cmp.ult.s $f2, $f3, $f4 +0x54 0x83 0x10 0x55 # CHECK: cmp.un.d $f2, $f3, $f4 +0x54 0x83 0x10 0x45 # CHECK: cmp.un.s $f2, $f3, $f4 +0x54 0x44 0x53 0x7b # CHECK: cvt.d.l $f2, $f4 +0x54 0x44 0x13 0x7b # CHECK: cvt.d.s $f2, $f4 +0x54 0x44 0x33 0x7b # CHECK: cvt.d.w $f2, $f4 +0x54 0x64 0x41 0x3b # CHECK: cvt.l.d $f3, $f4 +0x54 0x64 0x01 0x3b # CHECK: cvt.l.s $f3, $f4 +0x54 0x44 0x1b 0x7b # CHECK: cvt.s.d $f2, $f4 +0x54 0x64 0x5b 0x7b # CHECK: cvt.s.l $f3, $f4 +0x54 0x64 0x3b 0x7b # CHECK: cvt.s.w $f3, $f4 +0x54 0x64 0x49 0x3b # CHECK: cvt.w.d $f3, $f4 +0x54 0x64 0x09 0x3b # CHECK: cvt.w.s $f3, $f4 0x00 0x00 0xe3 0x7c # CHECK: deret +0x00 0x00 0x47 0x7c # CHECK: di +0x00 0x0f 0x47 0x7c # CHECK: di $15 0x00 0xa4 0x19 0x18 # CHECK: div $3, $4, $5 +0x54 0xc4 0x11 0xf0 # CHECK: div.d $f2, $f4, $f6 +0x54 0xa4 0x18 0xf0 # CHECK: div.s $f3, $f4, $f5 0x00 0xa4 0x19 0x98 # CHECK: divu $3, $4, $5 0x00 0x00 0x18 0x00 # CHECK: ehb 0x00 0x00 0x57 0x7c # CHECK: ei 0x00 0x0a 0x57 0x7c # CHECK: ei $10 0x00 0x00 0xf3 0x7c # CHECK: eret 0x00 0x01 0xf3 0x7c # CHECK: eretnc +0x54 0x44 0x43 0x3b # CHECK: floor.l.d $f2, $f4 +0x54 0x65 0x03 0x3b # CHECK: floor.l.s $f3, $f5 +0x54 0x44 0x4b 0x3b # CHECK: floor.w.d $f2, $f4 +0x54 0x65 0x0b 0x3b # CHECK: floor.w.s $f3, $f5 0x80 0x05 0x01 0x00 # CHECK: jialc $5, 256 0xa0 0x05 0x01 0x00 # CHECK: jic $5, 256 +0x1c 0x85 0x00 0x08 # CHECK: lb $4, 8($5) +0x14 0x85 0x00 0x08 # CHECK: lbu $4, 8($5) +0x60 0x85 0x68 0x08 # CHECK: lbe $4, 8($5) +0x60 0x85 0x60 0x08 # CHECK: lbue $4, 8($5) 0xbd 0x0a 0x01 0x2c # CHECK: ldc1 $f8, 300($10) 0x21 0x6c 0x23 0xff # CHECK: ldc2 $11, 1023($12) -0x78 0x48 0x00 0x43 # CHECK: lwpc $2, 268 +0x60 0x44 0x30 0x08 # CHECK: ll $2, 8($4) +0x60 0x85 0x6c 0x06 # CHECK: lle $4, 6($5) 0x00 0x43 0x26 0x0f # CHECK: lsa $2, $3, $4, 4 +0x10 0xc0 0x45 0x67 # CHECK: lui $6, 17767 +0xfc 0x85 0x00 0x06 # CHECK: lw $4, 6($5) +0x60 0x85 0x6e 0x06 # CHECK: lwe $4, 6($5) +0x20 0x44 0x50 0x08 # CHECK: lwm32 $16, $17, 8($4) +0x21 0x3b 0x59 0x84 # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, -1660($27) +0x78 0x48 0x00 0x43 # CHECK: lwpc $2, 268 +0x54 0xa4 0x1b 0xb8 # CHECK: maddf.d $f3, $f4, $f5 +0x54 0xa4 0x19 0xb8 # CHECK: maddf.s $f3, $f4, $f5 +0x54 0x64 0x2a 0x0b # CHECK: max.d $f5, $f4, $f3 +0x54 0x64 0x28 0x0b # CHECK: max.s $f5, $f4, $f3 +0x54 0x64 0x2a 0x2b # CHECK: maxa.d $f5, $f4, $f3 +0x54 0x64 0x28 0x2b # CHECK: maxa.s $f5, $f4, $f3 +0x54 0x64 0x2a 0x03 # CHECK: min.d $f5, $f4, $f3 +0x54 0x64 0x28 0x03 # CHECK: min.s $f5, $f4, $f3 +0x54 0x64 0x2a 0x23 # CHECK: mina.d $f5, $f4, $f3 +0x54 0x64 0x28 0x23 # CHECK: mina.s $f5, $f4, $f3 +0x00 0x67 0x00 0xfc # CHECK: mfc0 $3, $7, 0 +0x00 0x67 0x18 0xfc # CHECK: mfc0 $3, $7, 3 +0x54 0xaa 0x20 0x3b # CHECK: mfc1 $5, $f10 +0x01 0xe5 0x4d 0x3c # CHECK: mfc2 $15, $5 +0x02 0x95 0x00 0xf4 # CHECK: mfhc0 $20, $21, 0 +0x00 0x22 0x08 0xf4 # CHECK: mfhc0 $1, $2, 1 +0x54 0x06 0x30 0x3b # CHECK: mfhc1 $zero, $f6 +0x02 0xf0 0x8d 0x3c # CHECK: mfhc2 $23, $16 0x00 0xa4 0x19 0x58 # CHECK: mod $3, $4, $5 0x00 0xa4 0x19 0xd8 # CHECK: modu $3, $4, $5 -0x00 0xa4 0x18 0x18 # CHECK: mul $3, $4, $5 +0x54 0x86 0x20 0x7b # CHECK: mov.d $f4, $f6 +0x54 0xc7 0x00 0x7b # CHECK: mov.s $f6, $f7 +0x54 0xa4 0x1b 0xf8 # CHECK: msubf.d $f3, $f4, $f5 +0x54 0xa4 0x19 0xf8 # CHECK: msubf.s $f3, $f4, $f5 +0x00 0x22 0x3a 0xfc # CHECK: mtc0 $1, $2, 7 +0x00 0xa9 0x02 0xfc # CHECK: mtc0 $5, $9 +0x00 0xa9 0x02 0xfc # CHECK: mtc0 $5, $9, 0 +0x54 0x64 0x28 0x3b # CHECK: mtc1 $3, $f4 +0x00 0xa6 0x5d 0x3c # CHECK: mtc2 $5, $6 +0x00 0xe8 0x02 0xf4 # CHECK: mthc0 $7, $8 +0x00 0xe8 0x02 0xf4 # CHECK: mthc0 $7, $8, 0 +0x01 0x2a 0x0a 0xf4 # CHECK: mthc0 $9, $10, 1 +0x55 0x6c 0x38 0x3b # CHECK: mthc1 $11, $f12 +0x01 0xae 0x9d 0x3c # CHECK: mthc2 $13, $14 0x00 0xa4 0x18 0x58 # CHECK: muh $3, $4, $5 -0x00 0xa4 0x18 0x98 # CHECK: mulu $3, $4, $5 0x00 0xa4 0x18 0xd8 # CHECK: muhu $3, $4, $5 +0x00 0xa4 0x18 0x18 # CHECK: mul $3, $4, $5 +0x54 0xc4 0x11 0xb0 # CHECK: mul.d $f2, $f4, $f6 +0x54 0xa4 0x18 0xb0 # CHECK: mul.s $f3, $f4, $f5 +0x00 0xa4 0x18 0x98 # CHECK: mulu $3, $4, $5 +0x54 0x86 0x2b 0x7b # CHECK: neg.d $f4, $f6 +0x54 0xc7 0x0b 0x7b # CHECK: neg.s $f6, $f7 0x00 0x00 0x00 0x00 # CHECK: nop 0x00 0xa4 0x1a 0xd0 # CHECK: nor $3, $4, $5 0x00 0xa4 0x1a 0x90 # CHECK: or $3, $4, $5 0x50 0x64 0x04 0xd2 # CHECK: ori $3, $4, 1234 +0x00 0x00 0x28 0x00 # CHECK: pause 0x60 0x25 0x20 0x08 # CHECK: pref 1, 8($5) -0x00 0x83 0x11 0x40 # CHECK: seleqz $2, $3, $4 -0x00 0x83 0x11 0x80 # CHECK: selnez $2, $3, $4 -0x00 0x83 0x38 0x00 # CHECK: sll $4, $3, 7 -0x00 0xa4 0x19 0x90 # CHECK: sub $3, $4, $5 -0x00 0xa4 0x19 0xd0 # CHECK: subu $3, $4, $5 -0x00 0x64 0xf1 0x7c # CHECK: wrpgpr $3, $4 -0x00 0x64 0x7b 0x3c # CHECK: wsbh $3, $4 -0x00 0xa4 0x1b 0x10 # CHECK: xor $3, $4, $5 -0x70 0x64 0x04 0xd2 # CHECK: xori $3, $4, 1234 +0x60 0x25 0xa4 0x08 # CHECK: prefe 1, 8($5) +0x00 0xbd 0x01 0xc0 # CHECK: rdhwr $5, $29 +0x00 0xbd 0x11 0xc0 # CHECK: rdhwr $5, $29, 2 +0x00 0x69 0xe1 0x7c # CHECK: rdpgpr $3, $9 +0x54 0x44 0x52 0x3b # CHECK: recip.d $f2, $f4 +0x54 0x44 0x12 0x3b # CHECK: recip.s $f2, $f4 +0x54 0x82 0x02 0x20 # CHECK: rint.d $f2, $f4 +0x54 0x82 0x00 0x20 # CHECK: rint.s $f2, $f4 +0x00 0x42 0x38 0xc0 # CHECK: rotr $2, $2, 7 +0x01 0x26 0x38 0xc0 # CHECK: rotr $9, $6, 7 +0x00 0xc7 0x48 0xd0 # CHECK: rotrv $9, $6, $7 +0x54 0x44 0x73 0x3b # CHECK: round.l.d $f2, $f4 +0x54 0x44 0x33 0x3b # CHECK: round.l.s $f2, $f4 +0x54 0x44 0x7b 0x3b # CHECK: round.w.d $f2, $f4 +0x54 0x44 0x3b 0x3b # CHECK: round.w.s $f2, $f4 +0x54 0x44 0x42 0x3b # CHECK: rsqrt.d $f2, $f4 +0x54 0x65 0x02 0x3b # CHECK: rsqrt.s $f3, $f5 0x18 0x85 0x00 0x06 # CHECK: sb $4, 6($5) 0x60 0x85 0xa8 0x06 # CHECK: sbe $4, 6($5) +0x60 0x44 0xb0 0x08 # CHECK: sc $2, 8($4) 0x60 0x85 0xac 0x06 # CHECK: sce $4, 6($5) -0x38 0x85 0x00 0x06 # CHECK: sh $4, 6($5) -0x60 0x85 0xaa 0x06 # CHECK: she $4, 6($5) -0x60 0x85 0x6c 0x06 # CHECK: lle $4, 6($5) -0x60 0x85 0x6e 0x06 # CHECK: lwe $4, 6($5) -0xfc 0x85 0x00 0x06 # CHECK: lw $4, 6($5) -0x10 0xc0 0x45 0x67 # CHECK: lui $6, 17767 +0x00 0x00 0xdb 0x7c # CHECK: sdbbp +0x00 0x22 0xdb 0x7c # CHECK: sdbbp 34 0x00 0x64 0x2b 0x3c # CHECK: seb $3, $4 0x00 0x64 0x3b 0x3c # CHECK: seh $3, $4 +0x54 0x82 0x02 0xb8 # CHECK: sel.d $f0, $f2, $f4 +0x54 0x41 0x08 0xb8 # CHECK: sel.s $f1, $f1, $f2 +0x00 0x83 0x11 0x40 # CHECK: seleqz $2, $3, $4 +0x55 0x04 0x12 0x38 # CHECK: seleqz.d $f2, $f4, $f8 +0x54 0x62 0x08 0x38 # CHECK: seleqz.s $f1, $f2, $f3 +0x00 0x83 0x11 0x80 # CHECK: selnez $2, $3, $4 +0x55 0x04 0x12 0x78 # CHECK: selnez.d $f2, $f4, $f8 +0x54 0x62 0x08 0x78 # CHECK: selnez.s $f1, $f2, $f3 +0x38 0x85 0x00 0x06 # CHECK: sh $4, 6($5) +0x60 0x85 0xaa 0x06 # CHECK: she $4, 6($5) +0x00 0x83 0x38 0x00 # CHECK: sll $4, $3, 7 +0x54 0x44 0x4a 0x3b # CHECK: sqrt.d $f2, $f4 +0x54 0x65 0x0a 0x3b # CHECK: sqrt.s $f3, $f5 +0x00 0x00 0x08 0x00 # CHECK: ssnop +0x00 0xa4 0x19 0x90 # CHECK: sub $3, $4, $5 +0x54 0xc4 0x11 0x70 # CHECK: sub.d $f2, $f4, $f6 +0x54 0xa4 0x18 0x70 # CHECK: sub.s $f3, $f4, $f5 +0x00 0xa4 0x19 0xd0 # CHECK: subu $3, $4, $5 0xf8 0xa6 0x00 0x04 # CHECK: sw $5, 4($6) 0x60 0xa4 0xae 0x08 # CHECK: swe $5, 8($4) -0x54 0xa4 0x18 0x30 # CHECK: add.s $f3, $f4, $f5 -0x54 0xc4 0x11 0x30 # CHECK: add.d $f2, $f4, $f6 -0x54 0xa4 0x18 0x70 # CHECK: sub.s $f3, $f4, $f5 -0x54 0xc4 0x11 0x70 # CHECK: sub.d $f2, $f4, $f6 -0x54 0xa4 0x18 0xb0 # CHECK: mul.s $f3, $f4, $f5 -0x54 0xc4 0x11 0xb0 # CHECK: mul.d $f2, $f4, $f6 -0x54 0xa4 0x18 0xf0 # CHECK: div.s $f3, $f4, $f5 -0x54 0xc4 0x11 0xf0 # CHECK: div.d $f2, $f4, $f6 -0x54 0xa4 0x19 0xb8 # CHECK: maddf.s $f3, $f4, $f5 -0x54 0xa4 0x1b 0xb8 # CHECK: maddf.d $f3, $f4, $f5 -0x54 0xa4 0x19 0xf8 # CHECK: msubf.s $f3, $f4, $f5 -0x54 0xa4 0x1b 0xf8 # CHECK: msubf.d $f3, $f4, $f5 -0x54 0xc7 0x00 0x7b # CHECK: mov.s $f6, $f7 -0x54 0x86 0x20 0x7b # CHECK: mov.d $f4, $f6 -0x54 0xc7 0x0b 0x7b # CHECK: neg.s $f6, $f7 -0x54 0x86 0x2b 0x7b # CHECK: neg.d $f4, $f6 -0x54 0x64 0x28 0x0b # CHECK: max.s $f5, $f4, $f3 -0x54 0x64 0x2a 0x0b # CHECK: max.d $f5, $f4, $f3 -0x54 0x64 0x28 0x2b # CHECK: maxa.s $f5, $f4, $f3 -0x54 0x64 0x2a 0x2b # CHECK: maxa.d $f5, $f4, $f3 -0x54 0x64 0x28 0x03 # CHECK: min.s $f5, $f4, $f3 -0x54 0x64 0x2a 0x03 # CHECK: min.d $f5, $f4, $f3 -0x54 0x64 0x28 0x23 # CHECK: mina.s $f5, $f4, $f3 -0x54 0x64 0x2a 0x23 # CHECK: mina.d $f5, $f4, $f3 -0x54 0x83 0x10 0x05 # CHECK: cmp.af.s $f2, $f3, $f4 -0x54 0x83 0x10 0x45 # CHECK: cmp.un.s $f2, $f3, $f4 -0x54 0x83 0x10 0x85 # CHECK: cmp.eq.s $f2, $f3, $f4 -0x54 0x83 0x10 0xc5 # CHECK: cmp.ueq.s $f2, $f3, $f4 -0x54 0x83 0x11 0x05 # CHECK: cmp.lt.s $f2, $f3, $f4 -0x54 0x83 0x11 0x45 # CHECK: cmp.ult.s $f2, $f3, $f4 -0x54 0x83 0x11 0x85 # CHECK: cmp.le.s $f2, $f3, $f4 -0x54 0x83 0x11 0xc5 # CHECK: cmp.ule.s $f2, $f3, $f4 -0x54 0x83 0x12 0x05 # CHECK: cmp.saf.s $f2, $f3, $f4 -0x54 0x83 0x12 0x45 # CHECK: cmp.sun.s $f2, $f3, $f4 -0x54 0x83 0x12 0x85 # CHECK: cmp.seq.s $f2, $f3, $f4 -0x54 0x83 0x12 0xc5 # CHECK: cmp.sueq.s $f2, $f3, $f4 -0x54 0x83 0x13 0x05 # CHECK: cmp.slt.s $f2, $f3, $f4 -0x54 0x83 0x13 0x45 # CHECK: cmp.sult.s $f2, $f3, $f4 -0x54 0x83 0x13 0x85 # CHECK: cmp.sle.s $f2, $f3, $f4 -0x54 0x83 0x13 0xc5 # CHECK: cmp.sule.s $f2, $f3, $f4 -0x54 0x83 0x10 0x15 # CHECK: cmp.af.d $f2, $f3, $f4 -0x54 0x83 0x10 0x55 # CHECK: cmp.un.d $f2, $f3, $f4 -0x54 0x83 0x10 0x95 # CHECK: cmp.eq.d $f2, $f3, $f4 -0x54 0x83 0x10 0xd5 # CHECK: cmp.ueq.d $f2, $f3, $f4 -0x54 0x83 0x11 0x15 # CHECK: cmp.lt.d $f2, $f3, $f4 -0x54 0x83 0x11 0x55 # CHECK: cmp.ult.d $f2, $f3, $f4 -0x54 0x83 0x11 0x95 # CHECK: cmp.le.d $f2, $f3, $f4 -0x54 0x83 0x11 0xd5 # CHECK: cmp.ule.d $f2, $f3, $f4 -0x54 0x83 0x12 0x15 # CHECK: cmp.saf.d $f2, $f3, $f4 -0x54 0x83 0x12 0x55 # CHECK: cmp.sun.d $f2, $f3, $f4 -0x54 0x83 0x12 0x95 # CHECK: cmp.seq.d $f2, $f3, $f4 -0x54 0x83 0x12 0xd5 # CHECK: cmp.sueq.d $f2, $f3, $f4 -0x54 0x83 0x13 0x15 # CHECK: cmp.slt.d $f2, $f3, $f4 -0x54 0x83 0x13 0x55 # CHECK: cmp.sult.d $f2, $f3, $f4 -0x54 0x83 0x13 0x95 # CHECK: cmp.sle.d $f2, $f3, $f4 -0x54 0x83 0x13 0xd5 # CHECK: cmp.sule.d $f2, $f3, $f4 -0x54 0x64 0x01 0x3b # CHECK: cvt.l.s $f3, $f4 -0x54 0x64 0x41 0x3b # CHECK: cvt.l.d $f3, $f4 -0x54 0x64 0x09 0x3b # CHECK: cvt.w.s $f3, $f4 -0x54 0x64 0x49 0x3b # CHECK: cvt.w.d $f3, $f4 -0x54 0x44 0x13 0x7b # CHECK: cvt.d.s $f2, $f4 -0x54 0x44 0x33 0x7b # CHECK: cvt.d.w $f2, $f4 -0x54 0x44 0x53 0x7b # CHECK: cvt.d.l $f2, $f4 -0x54 0x44 0x1b 0x7b # CHECK: cvt.s.d $f2, $f4 -0x54 0x64 0x3b 0x7b # CHECK: cvt.s.w $f3, $f4 -0x54 0x64 0x5b 0x7b # CHECK: cvt.s.l $f3, $f4 -0x54 0x65 0x03 0x7b # CHECK: abs.s $f3, $f5 -0x54 0x44 0x23 0x7b # CHECK: abs.d $f2, $f4 -0x54 0x65 0x03 0x3b # CHECK: floor.l.s $f3, $f5 -0x54 0x44 0x43 0x3b # CHECK: floor.l.d $f2, $f4 -0x54 0x65 0x0b 0x3b # CHECK: floor.w.s $f3, $f5 -0x54 0x44 0x4b 0x3b # CHECK: floor.w.d $f2, $f4 -0x54 0x65 0x13 0x3b # CHECK: ceil.l.s $f3, $f5 -0x54 0x44 0x53 0x3b # CHECK: ceil.l.d $f2, $f4 -0x54 0x65 0x1b 0x3b # CHECK: ceil.w.s $f3, $f5 -0x54 0x44 0x5b 0x3b # CHECK: ceil.w.d $f2, $f4 -0x54 0x65 0x23 0x3b # CHECK: trunc.l.s $f3, $f5 -0x54 0x44 0x63 0x3b # CHECK: trunc.l.d $f2, $f4 -0x54 0x65 0x2b 0x3b # CHECK: trunc.w.s $f3, $f5 -0x54 0x44 0x6b 0x3b # CHECK: trunc.w.d $f2, $f4 -0x54 0x65 0x0a 0x3b # CHECK: sqrt.s $f3, $f5 -0x54 0x44 0x4a 0x3b # CHECK: sqrt.d $f2, $f4 -0x54 0x65 0x02 0x3b # CHECK: rsqrt.s $f3, $f5 -0x54 0x44 0x42 0x3b # CHECK: rsqrt.d $f2, $f4 -0x60 0x25 0xa6 0x08 # CHECK: cachee 1, 8($5) -0x60 0x25 0xa4 0x08 # CHECK: prefe 1, 8($5) +0x20 0x44 0xd0 0x08 # CHECK: swm32 $16, $17, 8($4) +0x00 0x00 0x6b 0x7c # CHECK: sync +0x00 0x11 0x6b 0x7c # CHECK: sync 17 +0x41 0x85 0x00 0x08 # CHECK: synci 8($5) +0x00 0x00 0x8b 0x7c # CHECK: syscall +0x01 0x8c 0x8b 0x7c # CHECK: syscall 396 0x01 0x28 0x00 0x3c # CHECK: teq $8, $9 0x00 0xe5 0xf0 0x3c # CHECK: teq $5, $7, 15 0x01 0x47 0x02 0x3c # CHECK: tge $7, $10 0x02 0x67 0xf2 0x3c # CHECK: tge $7, $19, 15 0x03 0x96 0x04 0x3c # CHECK: tgeu $22, $gp 0x01 0xd4 0xf4 0x3c # CHECK: tgeu $20, $14, 15 +0x00 0x00 0x43 0x7c # CHECK: tlbinv +0x00 0x00 0x53 0x7c # CHECK: tlbinvf 0x01 0xaf 0x08 0x3c # CHECK: tlt $15, $13 0x02 0x62 0xf8 0x3c # CHECK: tlt $2, $19, 15 0x02 0x0b 0x0a 0x3c # CHECK: tltu $11, $16 0x03 0xb0 0xfa 0x3c # CHECK: tltu $16, $sp, 15 0x02 0x26 0x0c 0x3c # CHECK: tne $6, $17 0x01 0x07 0xfc 0x3c # CHECK: tne $7, $8, 15 -0x65 0x88 # CHECK: lw $3, 32($gp) -0x48 0x66 # CHECK: lw $3, 24($sp) -0x6a 0x12 # CHECK: lw16 $4, 8($17) -0x29 0x82 # CHECK: lhu16 $3, 4($16) -0x09 0x94 # CHECK: lbu16 $3, 4($17) -0x09 0x9f # CHECK: lbu16 $3, -1($17) -0x04 0xcc # CHECK: addu16 $6, $17, $4 -0x44 0x21 # CHECK: and16 $16, $2 -0x2e 0x56 # CHECK: andi16 $4, $5, 8 -0x46 0x70 # CHECK: not16 $4, $7 -0x45 0xf9 # CHECK: or16 $3, $7 -0x25 0xe0 # CHECK: sll16 $3, $6, 8 -0x25 0xe1 # CHECK: srl16 $3, $6, 8 -0x46 0x1B # CHECK: break16 8 -0xed 0xff # CHECK: li16 $3, -1 -0x0c 0x65 # CHECK: move16 $3, $5 -0x46 0x3b # CHECK: sdbbp16 8 -0x04 0x3b # CHECK: subu16 $5, $16, $3 -0x44 0xd8 # CHECK: xor16 $17, $5 -0x1c 0x85 0x00 0x08 # CHECK: lb $4, 8($5) -0x14 0x85 0x00 0x08 # CHECK: lbu $4, 8($5) -0x60 0x85 0x68 0x08 # CHECK: lbe $4, 8($5) -0x60 0x85 0x60 0x08 # CHECK: lbue $4, 8($5) -0x00 0x00 0x28 0x00 # CHECK: pause -0x00 0xbd 0x11 0xc0 # CHECK: rdhwr $5, $29, 2 -0x00 0xbd 0x01 0xc0 # CHECK: rdhwr $5, $29 +0x54 0x44 0x63 0x3b # CHECK: trunc.l.d $f2, $f4 +0x54 0x65 0x23 0x3b # CHECK: trunc.l.s $f3, $f5 +0x54 0x44 0x6b 0x3b # CHECK: trunc.w.d $f2, $f4 +0x54 0x65 0x2b 0x3b # CHECK: trunc.w.s $f3, $f5 0x00 0x00 0x93 0x7c # CHECK: wait 0x00 0x11 0x93 0x7c # CHECK: wait 17 -0x00 0x00 0x08 0x00 # CHECK: ssnop -0x00 0x00 0x6b 0x7c # CHECK: sync -0x00 0x11 0x6b 0x7c # CHECK: sync 17 -0x41 0x85 0x00 0x08 # CHECK: synci 8($5) -0x00 0x69 0xe1 0x7c # CHECK: rdpgpr $3, $9 -0x00 0x00 0xdb 0x7c # CHECK: sdbbp -0x00 0x22 0xdb 0x7c # CHECK: sdbbp 34 -0x45 0x22 # CHECK: lwm16 $16, $17, $ra, 8($sp) -0x89 0x84 # CHECK: sb16 $3, 4($16) -0xaa 0x14 # CHECK: sh16 $4, 8($17) -0xc8 0x9f # CHECK: sw $4, 124($sp) -0xea 0x11 # CHECK: sw16 $4, 4($17) -0xe8 0x11 # CHECK: sw16 $zero, 4($17) -0x45 0x2a # CHECK: swm16 $16, $17, $ra, 8($sp) -0x54 0x44 0x12 0x3b # CHECK: recip.s $f2, $f4 -0x54 0x44 0x52 0x3b # CHECK: recip.d $f2, $f4 -0x54 0x82 0x00 0x20 # CHECK: rint.s $f2, $f4 -0x54 0x82 0x02 0x20 # CHECK: rint.d $f2, $f4 -0x54 0x44 0x33 0x3b # CHECK: round.l.s $f2, $f4 -0x54 0x44 0x73 0x3b # CHECK: round.l.d $f2, $f4 -0x54 0x44 0x3b 0x3b # CHECK: round.w.s $f2, $f4 -0x54 0x44 0x7b 0x3b # CHECK: round.w.d $f2, $f4 -0x54 0x41 0x08 0xb8 # CHECK: sel.s $f1, $f1, $f2 -0x54 0x82 0x02 0xb8 # CHECK: sel.d $f0, $f2, $f4 -0x54 0x62 0x08 0x38 # CHECK: seleqz.s $f1, $f2, $f3 -0x55 0x04 0x12 0x38 # CHECK: seleqz.d $f2, $f4, $f8 -0x54 0x62 0x08 0x78 # CHECK: selnez.s $f1, $f2, $f3 -0x55 0x04 0x12 0x78 # CHECK: selnez.d $f2, $f4, $f8 -0x54 0x62 0x00 0x60 # CHECK: class.s $f2, $f3 -0x54 0x82 0x02 0x60 # CHECK: class.d $f2, $f4 -0x00 0x00 0x47 0x7c # CHECK: di -0x00 0x0f 0x47 0x7c # CHECK: di $15 -0x00 0x00 0x43 0x7c # CHECK: tlbinv -0x00 0x00 0x53 0x7c # CHECK: tlbinvf -0x00 0xa9 0x02 0xfc # CHECK: mtc0 $5, $9, 0 -0x00 0xa9 0x02 0xfc # CHECK: mtc0 $5, $9 -0x00 0x22 0x3a 0xfc # CHECK: mtc0 $1, $2, 7 -0x54 0x64 0x28 0x3b # CHECK: mtc1 $3, $f4 -0x00 0xa6 0x5d 0x3c # CHECK: mtc2 $5, $6 -0x00 0xe8 0x02 0xf4 # CHECK: mthc0 $7, $8, 0 -0x00 0xe8 0x02 0xf4 # CHECK: mthc0 $7, $8 -0x01 0x2a 0x0a 0xf4 # CHECK: mthc0 $9, $10, 1 -0x55 0x6c 0x38 0x3b # CHECK: mthc1 $11, $f12 -0x01 0xae 0x9d 0x3c # CHECK: mthc2 $13, $14 -0x00 0x67 0x00 0xfc # CHECK: mfc0 $3, $7, 0 -0x00 0x67 0x18 0xfc # CHECK: mfc0 $3, $7, 3 -0x54 0xaa 0x20 0x3b # CHECK: mfc1 $5, $f10 -0x01 0xe5 0x4d 0x3c # CHECK: mfc2 $15, $5 -0x02 0x95 0x00 0xf4 # CHECK: mfhc0 $20, $21, 0 -0x00 0x22 0x08 0xf4 # CHECK: mfhc0 $1, $2, 1 -0x54 0x06 0x30 0x3b # CHECK: mfhc1 $zero, $f6 -0x02 0xf0 0x8d 0x3c # CHECK: mfhc2 $23, $16 +0x00 0x64 0xf1 0x7c # CHECK: wrpgpr $3, $4 +0x00 0x64 0x7b 0x3c # CHECK: wsbh $3, $4 +0x00 0xa4 0x1b 0x10 # CHECK: xor $3, $4, $5 +0x70 0x64 0x04 0xd2 # CHECK: xori $3, $4, 1234 Index: test/MC/Disassembler/Mips/micromips64r6/valid.txt =================================================================== --- test/MC/Disassembler/Mips/micromips64r6/valid.txt +++ test/MC/Disassembler/Mips/micromips64r6/valid.txt @@ -12,206 +12,208 @@ 0xcc 0x42 # CHECK: bc16 132 0x8f 0x0a # CHECK: beqzc16 $6, 20 0xaf 0x0a # CHECK: bnezc16 $6, 20 -0x65 0x88 # CHECK: lw $3, 32($gp) -0x48 0x66 # CHECK: lw $3, 24($sp) -0x6a 0x12 # CHECK: lw16 $4, 8($17) -0x29 0x82 # CHECK: lhu16 $3, 4($16) -0x09 0x94 # CHECK: lbu16 $3, 4($17) -0x09 0x9f # CHECK: lbu16 $3, -1($17) +0x46 0x1B # CHECK: break16 8 0x45 0x2b # CHECK: jalr $9 0x45 0x23 # CHECK: jrc16 $9 0x44 0xb3 # CHECK: jrcaddiusp 20 -0xf0 0x64 0x00 0x05 # CHECK: daui $3, $4, 5 -0x42 0x23 0x00 0x04 # CHECK: dahi $3, 4 -0x42 0x03 0x00 0x04 # CHECK: dati $3, 4 -0x59 0x26 0x30 0xec # CHECK: dext $9, $6, 3, 7 -0x59 0x26 0x30 0xe4 # CHECK: dextm $9, $6, 3, 39 -0x59 0x26 0x30 0xd4 # CHECK: dextu $9, $6, 35, 7 -0x58 0x43 0x25 0x1c # CHECK: dalign $4, $2, $3, 5 -0x58 0xa4 0x19 0x18 # CHECK: ddiv $3, $4, $5 -0x58 0xa4 0x19 0x58 # CHECK: dmod $3, $4, $5 -0x58 0xa4 0x19 0x98 # CHECK: ddivu $3, $4, $5 -0x58 0xa4 0x19 0xd8 # CHECK: dmodu $3, $4, $5 -0x54 0xa4 0x18 0x30 # CHECK: add.s $f3, $f4, $f5 +0x09 0x94 # CHECK: lbu16 $3, 4($17) +0x09 0x9f # CHECK: lbu16 $3, -1($17) +0x29 0x82 # CHECK: lhu16 $3, 4($16) +0xed 0xff # CHECK: li16 $3, -1 +0x48 0x66 # CHECK: lw $3, 24($sp) +0x65 0x88 # CHECK: lw $3, 32($gp) +0x6a 0x12 # CHECK: lw16 $4, 8($17) +0x45 0x22 # CHECK: lwm16 $16, $17, $ra, 8($sp) +0x0c 0x65 # CHECK: move16 $3, $5 +0x84 0x34 # CHECK: movep $5, $6, $2, $3 +0x89 0x84 # CHECK: sb16 $3, 4($16) +0x46 0x3b # CHECK: sdbbp16 8 +0xaa 0x14 # CHECK: sh16 $4, 8($17) +0x04 0x3b # CHECK: subu16 $5, $16, $3 +0xc8 0x9f # CHECK: sw $4, 124($sp) +0xea 0x11 # CHECK: sw16 $4, 4($17) +0xe8 0x11 # CHECK: sw16 $zero, 4($17) +0x45 0x2a # CHECK: swm16 $16, $17, $ra, 8($sp) +0x44 0xd8 # CHECK: xor16 $17, $5 +0x54 0x44 0x23 0x7b # CHECK: abs.d $f2, $f4 +0x54 0x65 0x03 0x7b # CHECK: abs.s $f3, $f5 0x54 0xc4 0x11 0x30 # CHECK: add.d $f2, $f4, $f6 -0x54 0xa4 0x18 0x70 # CHECK: sub.s $f3, $f4, $f5 -0x54 0xc4 0x11 0x70 # CHECK: sub.d $f2, $f4, $f6 -0x54 0xa4 0x18 0xb0 # CHECK: mul.s $f3, $f4, $f5 -0x54 0xc4 0x11 0xb0 # CHECK: mul.d $f2, $f4, $f6 -0x54 0xa4 0x18 0xf0 # CHECK: div.s $f3, $f4, $f5 -0x54 0xc4 0x11 0xf0 # CHECK: div.d $f2, $f4, $f6 -0x54 0xa4 0x19 0xb8 # CHECK: maddf.s $f3, $f4, $f5 -0x54 0xa4 0x1b 0xb8 # CHECK: maddf.d $f3, $f4, $f5 -0x54 0xa4 0x19 0xf8 # CHECK: msubf.s $f3, $f4, $f5 -0x54 0xa4 0x1b 0xf8 # CHECK: msubf.d $f3, $f4, $f5 -0x54 0xc7 0x00 0x7b # CHECK: mov.s $f6, $f7 -0x54 0x86 0x20 0x7b # CHECK: mov.d $f4, $f6 -0x54 0xc7 0x0b 0x7b # CHECK: neg.s $f6, $f7 -0x54 0x86 0x2b 0x7b # CHECK: neg.d $f4, $f6 -0x54 0x64 0x28 0x0b # CHECK: max.s $f5, $f4, $f3 -0x54 0x64 0x2a 0x0b # CHECK: max.d $f5, $f4, $f3 -0x54 0x64 0x28 0x2b # CHECK: maxa.s $f5, $f4, $f3 -0x54 0x64 0x2a 0x2b # CHECK: maxa.d $f5, $f4, $f3 -0x54 0x64 0x28 0x03 # CHECK: min.s $f5, $f4, $f3 -0x54 0x64 0x2a 0x03 # CHECK: min.d $f5, $f4, $f3 -0x54 0x64 0x28 0x23 # CHECK: mina.s $f5, $f4, $f3 -0x54 0x64 0x2a 0x23 # CHECK: mina.d $f5, $f4, $f3 +0x54 0xa4 0x18 0x30 # CHECK: add.s $f3, $f4, $f5 +0x60 0x25 0xa6 0x08 # CHECK: cachee 1, 8($5) +0x54 0x44 0x53 0x3b # CHECK: ceil.l.d $f2, $f4 +0x54 0x65 0x13 0x3b # CHECK: ceil.l.s $f3, $f5 +0x54 0x44 0x5b 0x3b # CHECK: ceil.w.d $f2, $f4 +0x54 0x65 0x1b 0x3b # CHECK: ceil.w.s $f3, $f5 +0x54 0x82 0x02 0x60 # CHECK: class.d $f2, $f4 +0x54 0x62 0x00 0x60 # CHECK: class.s $f2, $f3 +0x54 0x83 0x10 0x15 # CHECK: cmp.af.d $f2, $f3, $f4 0x54 0x83 0x10 0x05 # CHECK: cmp.af.s $f2, $f3, $f4 -0x54 0x83 0x10 0x45 # CHECK: cmp.un.s $f2, $f3, $f4 +0x54 0x83 0x10 0x95 # CHECK: cmp.eq.d $f2, $f3, $f4 0x54 0x83 0x10 0x85 # CHECK: cmp.eq.s $f2, $f3, $f4 -0x54 0x83 0x10 0xc5 # CHECK: cmp.ueq.s $f2, $f3, $f4 -0x54 0x83 0x11 0x05 # CHECK: cmp.lt.s $f2, $f3, $f4 -0x54 0x83 0x11 0x45 # CHECK: cmp.ult.s $f2, $f3, $f4 +0x54 0x83 0x11 0x95 # CHECK: cmp.le.d $f2, $f3, $f4 0x54 0x83 0x11 0x85 # CHECK: cmp.le.s $f2, $f3, $f4 -0x54 0x83 0x11 0xc5 # CHECK: cmp.ule.s $f2, $f3, $f4 +0x54 0x83 0x11 0x15 # CHECK: cmp.lt.d $f2, $f3, $f4 +0x54 0x83 0x11 0x05 # CHECK: cmp.lt.s $f2, $f3, $f4 +0x54 0x83 0x12 0x15 # CHECK: cmp.saf.d $f2, $f3, $f4 0x54 0x83 0x12 0x05 # CHECK: cmp.saf.s $f2, $f3, $f4 -0x54 0x83 0x12 0x45 # CHECK: cmp.sun.s $f2, $f3, $f4 +0x54 0x83 0x12 0x95 # CHECK: cmp.seq.d $f2, $f3, $f4 0x54 0x83 0x12 0x85 # CHECK: cmp.seq.s $f2, $f3, $f4 -0x54 0x83 0x12 0xc5 # CHECK: cmp.sueq.s $f2, $f3, $f4 -0x54 0x83 0x13 0x05 # CHECK: cmp.slt.s $f2, $f3, $f4 -0x54 0x83 0x13 0x45 # CHECK: cmp.sult.s $f2, $f3, $f4 +0x54 0x83 0x13 0x95 # CHECK: cmp.sle.d $f2, $f3, $f4 0x54 0x83 0x13 0x85 # CHECK: cmp.sle.s $f2, $f3, $f4 +0x54 0x83 0x13 0x15 # CHECK: cmp.slt.d $f2, $f3, $f4 +0x54 0x83 0x13 0x05 # CHECK: cmp.slt.s $f2, $f3, $f4 +0x54 0x83 0x12 0xd5 # CHECK: cmp.sueq.d $f2, $f3, $f4 +0x54 0x83 0x12 0xc5 # CHECK: cmp.sueq.s $f2, $f3, $f4 +0x54 0x83 0x13 0xd5 # CHECK: cmp.sule.d $f2, $f3, $f4 0x54 0x83 0x13 0xc5 # CHECK: cmp.sule.s $f2, $f3, $f4 -0x54 0x83 0x10 0x15 # CHECK: cmp.af.d $f2, $f3, $f4 -0x54 0x83 0x10 0x55 # CHECK: cmp.un.d $f2, $f3, $f4 -0x54 0x83 0x10 0x95 # CHECK: cmp.eq.d $f2, $f3, $f4 +0x54 0x83 0x13 0x55 # CHECK: cmp.sult.d $f2, $f3, $f4 +0x54 0x83 0x13 0x45 # CHECK: cmp.sult.s $f2, $f3, $f4 +0x54 0x83 0x12 0x55 # CHECK: cmp.sun.d $f2, $f3, $f4 +0x54 0x83 0x12 0x45 # CHECK: cmp.sun.s $f2, $f3, $f4 0x54 0x83 0x10 0xd5 # CHECK: cmp.ueq.d $f2, $f3, $f4 -0x54 0x83 0x11 0x15 # CHECK: cmp.lt.d $f2, $f3, $f4 -0x54 0x83 0x11 0x55 # CHECK: cmp.ult.d $f2, $f3, $f4 -0x54 0x83 0x11 0x95 # CHECK: cmp.le.d $f2, $f3, $f4 +0x54 0x83 0x10 0xc5 # CHECK: cmp.ueq.s $f2, $f3, $f4 0x54 0x83 0x11 0xd5 # CHECK: cmp.ule.d $f2, $f3, $f4 -0x54 0x83 0x12 0x15 # CHECK: cmp.saf.d $f2, $f3, $f4 -0x54 0x83 0x12 0x55 # CHECK: cmp.sun.d $f2, $f3, $f4 -0x54 0x83 0x12 0x95 # CHECK: cmp.seq.d $f2, $f3, $f4 -0x54 0x83 0x12 0xd5 # CHECK: cmp.sueq.d $f2, $f3, $f4 -0x54 0x83 0x13 0x15 # CHECK: cmp.slt.d $f2, $f3, $f4 -0x54 0x83 0x13 0x55 # CHECK: cmp.sult.d $f2, $f3, $f4 -0x54 0x83 0x13 0x95 # CHECK: cmp.sle.d $f2, $f3, $f4 -0x54 0x83 0x13 0xd5 # CHECK: cmp.sule.d $f2, $f3, $f4 -0x54 0x64 0x01 0x3b # CHECK: cvt.l.s $f3, $f4 -0x54 0x64 0x41 0x3b # CHECK: cvt.l.d $f3, $f4 -0x54 0x64 0x09 0x3b # CHECK: cvt.w.s $f3, $f4 -0x54 0x64 0x49 0x3b # CHECK: cvt.w.d $f3, $f4 +0x54 0x83 0x11 0xc5 # CHECK: cmp.ule.s $f2, $f3, $f4 +0x54 0x83 0x11 0x55 # CHECK: cmp.ult.d $f2, $f3, $f4 +0x54 0x83 0x11 0x45 # CHECK: cmp.ult.s $f2, $f3, $f4 +0x54 0x83 0x10 0x55 # CHECK: cmp.un.d $f2, $f3, $f4 +0x54 0x83 0x10 0x45 # CHECK: cmp.un.s $f2, $f3, $f4 +0x54 0x44 0x53 0x7b # CHECK: cvt.d.l $f2, $f4 0x54 0x44 0x13 0x7b # CHECK: cvt.d.s $f2, $f4 0x54 0x44 0x33 0x7b # CHECK: cvt.d.w $f2, $f4 -0x54 0x44 0x53 0x7b # CHECK: cvt.d.l $f2, $f4 +0x54 0x64 0x41 0x3b # CHECK: cvt.l.d $f3, $f4 +0x54 0x64 0x01 0x3b # CHECK: cvt.l.s $f3, $f4 0x54 0x44 0x1b 0x7b # CHECK: cvt.s.d $f2, $f4 -0x54 0x64 0x3b 0x7b # CHECK: cvt.s.w $f3, $f4 0x54 0x64 0x5b 0x7b # CHECK: cvt.s.l $f3, $f4 -0x54 0x65 0x03 0x7b # CHECK: abs.s $f3, $f5 -0x54 0x44 0x23 0x7b # CHECK: abs.d $f2, $f4 -0x54 0x65 0x03 0x3b # CHECK: floor.l.s $f3, $f5 +0x54 0x64 0x3b 0x7b # CHECK: cvt.s.w $f3, $f4 +0x54 0x64 0x49 0x3b # CHECK: cvt.w.d $f3, $f4 +0x54 0x64 0x09 0x3b # CHECK: cvt.w.s $f3, $f4 +0x58 0xe6 0x49 0x10 # CHECK: dadd $9, $6, $7 +0x5b 0xe1 0x99 0x10 # CHECK: dadd $19, $1, $ra +0x5c 0x63 0xff 0xfb # CHECK: daddiu $3, $3, -5 +0x5c 0x64 0xff 0xfb # CHECK: daddiu $3, $4, -5 +0x5d 0x23 0x00 0x20 # CHECK: daddiu $9, $3, 32 +0x5d 0x26 0xc5 0x67 # CHECK: daddiu $9, $6, -15001 +0x5d 0x29 0xc5 0x67 # CHECK: daddiu $9, $9, -15001 +0x5d 0x29 0x00 0x0a # CHECK: daddiu $9, $9, 10 +0x5d 0x7a 0x7c 0xcd # CHECK: daddiu $11, $26, 31949 +0x5d 0xce 0x11 0xea # CHECK: daddiu $14, $14, 4586 +0x5d 0xeb 0xec 0x5f # CHECK: daddiu $15, $11, -5025 +0x5e 0x73 0x69 0x3f # CHECK: daddiu $19, $19, 26943 +0x5f 0x02 0x46 0x9f # CHECK: daddiu $24, $2, 18079 +0x5f 0x56 0xee 0x16 # CHECK: daddiu $26, $22, -4586 +0x5f 0xbd 0xff 0xe0 # CHECK: daddiu $sp, $sp, -32 +0x58 0xe6 0x49 0x50 # CHECK: daddu $9, $6, $7 +0x58 0x69 0x49 0x50 # CHECK: daddu $9, $9, $3 +0x5b 0xe1 0x99 0x50 # CHECK: daddu $19, $1, $ra +0x59 0x61 0xd1 0x50 # CHECK: daddu $26, $1, $11 +0x42 0x23 0x00 0x04 # CHECK: dahi $3, 4 +0x58 0x43 0x25 0x1c # CHECK: dalign $4, $2, $3, 5 +0x42 0x03 0x00 0x04 # CHECK: dati $3, 4 +0xf0 0x64 0x00 0x05 # CHECK: daui $3, $4, 5 +0x58 0xa4 0x19 0x18 # CHECK: ddiv $3, $4, $5 +0x58 0xa4 0x19 0x98 # CHECK: ddivu $3, $4, $5 +0x00 0x00 0xe3 0x7c # CHECK: deret +0x59 0x26 0x30 0xec # CHECK: dext $9, $6, 3, 7 +0x59 0x26 0x30 0xe4 # CHECK: dextm $9, $6, 3, 39 +0x59 0x26 0x30 0xd4 # CHECK: dextu $9, $6, 35, 7 +0x00 0x00 0x47 0x7c # CHECK: di +0x00 0x0f 0x47 0x7c # CHECK: di $15 +0x58 0x82 0x38 0xcc # CHECK: dins $4, $2, 3, 5 +0x58 0x82 0x38 0xc4 # CHECK: dinsm $4, $2, 3, 5 +0x58 0x82 0x20 0x34 # CHECK: dinsu $4, $2, 32, 5 +0x54 0xc4 0x11 0xf0 # CHECK: div.d $f2, $f4, $f6 +0x54 0xa4 0x18 0xf0 # CHECK: div.s $f3, $f4, $f5 +0x59 0x21 0x08 0xfc # CHECK: dmfc0 $9, $1, 1 +0x5a 0x51 0x00 0xfc # CHECK: dmfc0 $18, $17 +0x55 0x24 0x24 0x3b # CHECK: dmfc1 $9, $f4 +0x01 0xd2 0x6d 0x3c # CHECK: dmfc2 $14, $18 +0x58 0xa4 0x19 0x58 # CHECK: dmod $3, $4, $5 +0x58 0xa4 0x19 0xd8 # CHECK: dmodu $3, $4, $5 +0x59 0xf0 0x02 0xfc # CHECK: dmtc0 $15, $16 +0x59 0xf0 0x02 0xfc # CHECK: dmtc0 $15, $16, 0 +0x5a 0x32 0x2a 0xfc # CHECK: dmtc0 $17, $18, 5 +0x56 0x74 0x2c 0x3b # CHECK: dmtc1 $19, $f20 +0x02 0xb6 0x7d 0x3c # CHECK: dmtc2 $21, $22 0x54 0x44 0x43 0x3b # CHECK: floor.l.d $f2, $f4 -0x54 0x65 0x0b 0x3b # CHECK: floor.w.s $f3, $f5 +0x54 0x65 0x03 0x3b # CHECK: floor.l.s $f3, $f5 0x54 0x44 0x4b 0x3b # CHECK: floor.w.d $f2, $f4 -0x54 0x65 0x13 0x3b # CHECK: ceil.l.s $f3, $f5 -0x54 0x44 0x53 0x3b # CHECK: ceil.l.d $f2, $f4 -0x54 0x65 0x1b 0x3b # CHECK: ceil.w.s $f3, $f5 -0x54 0x44 0x5b 0x3b # CHECK: ceil.w.d $f2, $f4 -0x54 0x65 0x23 0x3b # CHECK: trunc.l.s $f3, $f5 -0x54 0x44 0x63 0x3b # CHECK: trunc.l.d $f2, $f4 -0x54 0x65 0x2b 0x3b # CHECK: trunc.w.s $f3, $f5 -0x54 0x44 0x6b 0x3b # CHECK: trunc.w.d $f2, $f4 -0x54 0x65 0x0a 0x3b # CHECK: sqrt.s $f3, $f5 -0x54 0x44 0x4a 0x3b # CHECK: sqrt.d $f2, $f4 -0x54 0x65 0x02 0x3b # CHECK: rsqrt.s $f3, $f5 +0x54 0x65 0x0b 0x3b # CHECK: floor.w.s $f3, $f5 +0x60 0x44 0x30 0x08 # CHECK: ll $2, 8($4) +0x20 0x44 0x50 0x08 # CHECK: lwm32 $16, $17, 8($4) +0x21 0x3b 0x59 0x84 # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, -1660($27) +0x54 0xa4 0x1b 0xb8 # CHECK: maddf.d $f3, $f4, $f5 +0x54 0xa4 0x19 0xb8 # CHECK: maddf.s $f3, $f4, $f5 +0x54 0x64 0x2a 0x0b # CHECK: max.d $f5, $f4, $f3 +0x54 0x64 0x28 0x0b # CHECK: max.s $f5, $f4, $f3 +0x54 0x64 0x2a 0x2b # CHECK: maxa.d $f5, $f4, $f3 +0x54 0x64 0x28 0x2b # CHECK: maxa.s $f5, $f4, $f3 +0x54 0x64 0x2a 0x03 # CHECK: min.d $f5, $f4, $f3 +0x54 0x64 0x28 0x03 # CHECK: min.s $f5, $f4, $f3 +0x54 0x64 0x2a 0x23 # CHECK: mina.d $f5, $f4, $f3 +0x54 0x64 0x28 0x23 # CHECK: mina.s $f5, $f4, $f3 +0x54 0x86 0x20 0x7b # CHECK: mov.d $f4, $f6 +0x54 0xc7 0x00 0x7b # CHECK: mov.s $f6, $f7 +0x54 0xa4 0x1b 0xf8 # CHECK: msubf.d $f3, $f4, $f5 +0x54 0xa4 0x19 0xf8 # CHECK: msubf.s $f3, $f4, $f5 +0x00 0x22 0x3a 0xfc # CHECK: mtc0 $1, $2, 7 +0x00 0xa9 0x02 0xfc # CHECK: mtc0 $5, $9 +0x00 0xa9 0x02 0xfc # CHECK: mtc0 $5, $9, 0 +0x54 0x64 0x28 0x3b # CHECK: mtc1 $3, $f4 +0x00 0xa6 0x5d 0x3c # CHECK: mtc2 $5, $6 +0x00 0xe8 0x02 0xf4 # CHECK: mthc0 $7, $8 +0x00 0xe8 0x02 0xf4 # CHECK: mthc0 $7, $8, 0 +0x01 0x2a 0x0a 0xf4 # CHECK: mthc0 $9, $10, 1 +0x55 0x6c 0x38 0x3b # CHECK: mthc1 $11, $f12 +0x01 0xae 0x9d 0x3c # CHECK: mthc2 $13, $14 +0x54 0xc4 0x11 0xb0 # CHECK: mul.d $f2, $f4, $f6 +0x54 0xa4 0x18 0xb0 # CHECK: mul.s $f3, $f4, $f5 +0x54 0x86 0x2b 0x7b # CHECK: neg.d $f4, $f6 +0x54 0xc7 0x0b 0x7b # CHECK: neg.s $f6, $f7 +0x54 0x44 0x52 0x3b # CHECK: recip.d $f2, $f4 +0x54 0x44 0x12 0x3b # CHECK: recip.s $f2, $f4 +0x54 0x82 0x02 0x20 # CHECK: rint.d $f2, $f4 +0x54 0x82 0x00 0x20 # CHECK: rint.s $f2, $f4 +0x00 0x42 0x38 0xc0 # CHECK: rotr $2, $2, 7 +0x01 0x26 0x38 0xc0 # CHECK: rotr $9, $6, 7 +0x00 0xc7 0x48 0xd0 # CHECK: rotrv $9, $6, $7 +0x54 0x44 0x73 0x3b # CHECK: round.l.d $f2, $f4 +0x54 0x44 0x33 0x3b # CHECK: round.l.s $f2, $f4 +0x54 0x44 0x7b 0x3b # CHECK: round.w.d $f2, $f4 +0x54 0x44 0x3b 0x3b # CHECK: round.w.s $f2, $f4 0x54 0x44 0x42 0x3b # CHECK: rsqrt.d $f2, $f4 +0x54 0x65 0x02 0x3b # CHECK: rsqrt.s $f3, $f5 +0x60 0x44 0xb0 0x08 # CHECK: sc $2, 8($4) +0x54 0x82 0x02 0xb8 # CHECK: sel.d $f0, $f2, $f4 +0x54 0x41 0x08 0xb8 # CHECK: sel.s $f1, $f1, $f2 +0x55 0x04 0x12 0x38 # CHECK: seleqz.d $f2, $f4, $f8 +0x54 0x62 0x08 0x38 # CHECK: seleqz.s $f1, $f2, $f3 +0x55 0x04 0x12 0x78 # CHECK: selnez.d $f2, $f4, $f8 +0x54 0x62 0x08 0x78 # CHECK: selnez.s $f1, $f2, $f3 +0x54 0x44 0x4a 0x3b # CHECK: sqrt.d $f2, $f4 +0x54 0x65 0x0a 0x3b # CHECK: sqrt.s $f3, $f5 +0x54 0xc4 0x11 0x70 # CHECK: sub.d $f2, $f4, $f6 +0x54 0xa4 0x18 0x70 # CHECK: sub.s $f3, $f4, $f5 +0x20 0x44 0xd0 0x08 # CHECK: swm32 $16, $17, 8($4) +0x00 0x00 0x8b 0x7c # CHECK: syscall +0x01 0x8c 0x8b 0x7c # CHECK: syscall 396 0x01 0x28 0x00 0x3c # CHECK: teq $8, $9 0x00 0xe5 0xf0 0x3c # CHECK: teq $5, $7, 15 0x01 0x47 0x02 0x3c # CHECK: tge $7, $10 0x02 0x67 0xf2 0x3c # CHECK: tge $7, $19, 15 0x03 0x96 0x04 0x3c # CHECK: tgeu $22, $gp 0x01 0xd4 0xf4 0x3c # CHECK: tgeu $20, $14, 15 +0x00 0x00 0x43 0x7c # CHECK: tlbinv +0x00 0x00 0x53 0x7c # CHECK: tlbinvf 0x01 0xaf 0x08 0x3c # CHECK: tlt $15, $13 0x02 0x62 0xf8 0x3c # CHECK: tlt $2, $19, 15 0x02 0x0b 0x0a 0x3c # CHECK: tltu $11, $16 0x03 0xb0 0xfa 0x3c # CHECK: tltu $16, $sp, 15 0x02 0x26 0x0c 0x3c # CHECK: tne $6, $17 0x01 0x07 0xfc 0x3c # CHECK: tne $7, $8, 15 -0x60 0x25 0xa6 0x08 # CHECK: cachee 1, 8($5) +0x54 0x44 0x63 0x3b # CHECK: trunc.l.d $f2, $f4 +0x54 0x65 0x23 0x3b # CHECK: trunc.l.s $f3, $f5 +0x54 0x44 0x6b 0x3b # CHECK: trunc.w.d $f2, $f4 +0x54 0x65 0x2b 0x3b # CHECK: trunc.w.s $f3, $f5 0x00 0x64 0xf1 0x7c # CHECK: wrpgpr $3, $4 0x00 0x64 0x7b 0x3c # CHECK: wsbh $3, $4 -0x65 0x88 # CHECK: lw $3, 32($gp) -0x48 0x66 # CHECK: lw $3, 24($sp) -0x6a 0x12 # CHECK: lw16 $4, 8($17) -0x29 0x82 # CHECK: lhu16 $3, 4($16) -0x09 0x94 # CHECK: lbu16 $3, 4($17) -0x09 0x9f # CHECK: lbu16 $3, -1($17) -0x46 0x1B # CHECK: break16 8 -0xed 0xff # CHECK: li16 $3, -1 -0x0c 0x65 # CHECK: move16 $3, $5 -0x46 0x3b # CHECK: sdbbp16 8 -0x04 0x3b # CHECK: subu16 $5, $16, $3 -0x44 0xd8 # CHECK: xor16 $17, $5 -0x45 0x22 # CHECK: lwm16 $16, $17, $ra, 8($sp) -0x89 0x84 # CHECK: sb16 $3, 4($16) -0xaa 0x14 # CHECK: sh16 $4, 8($17) -0xc8 0x9f # CHECK: sw $4, 124($sp) -0xea 0x11 # CHECK: sw16 $4, 4($17) -0xe8 0x11 # CHECK: sw16 $zero, 4($17) -0x45 0x2a # CHECK: swm16 $16, $17, $ra, 8($sp) -0x54 0x44 0x12 0x3b # CHECK: recip.s $f2, $f4 -0x54 0x44 0x52 0x3b # CHECK: recip.d $f2, $f4 -0x54 0x82 0x00 0x20 # CHECK: rint.s $f2, $f4 -0x54 0x82 0x02 0x20 # CHECK: rint.d $f2, $f4 -0x54 0x44 0x33 0x3b # CHECK: round.l.s $f2, $f4 -0x54 0x44 0x73 0x3b # CHECK: round.l.d $f2, $f4 -0x54 0x44 0x3b 0x3b # CHECK: round.w.s $f2, $f4 -0x54 0x44 0x7b 0x3b # CHECK: round.w.d $f2, $f4 -0x54 0x41 0x08 0xb8 # CHECK: sel.s $f1, $f1, $f2 -0x54 0x82 0x02 0xb8 # CHECK: sel.d $f0, $f2, $f4 -0x54 0x62 0x08 0x38 # CHECK: seleqz.s $f1, $f2, $f3 -0x55 0x04 0x12 0x38 # CHECK: seleqz.d $f2, $f4, $f8 -0x54 0x62 0x08 0x78 # CHECK: selnez.s $f1, $f2, $f3 -0x55 0x04 0x12 0x78 # CHECK: selnez.d $f2, $f4, $f8 -0x54 0x62 0x00 0x60 # CHECK: class.s $f2, $f3 -0x54 0x82 0x02 0x60 # CHECK: class.d $f2, $f4 -0x00 0x00 0xe3 0x7c # CHECK: deret -0x00 0x00 0x47 0x7c # CHECK: di -0x00 0x0f 0x47 0x7c # CHECK: di $15 -0x00 0x00 0x43 0x7c # CHECK: tlbinv -0x00 0x00 0x53 0x7c # CHECK: tlbinvf -0x58 0x82 0x20 0x34 # CHECK: dinsu $4, $2, 32, 5 -0x58 0x82 0x38 0xc4 # CHECK: dinsm $4, $2, 3, 5 -0x58 0x82 0x38 0xcc # CHECK: dins $4, $2, 3, 5 -0x00 0xa9 0x02 0xfc # CHECK: mtc0 $5, $9, 0 -0x00 0xa9 0x02 0xfc # CHECK: mtc0 $5, $9 -0x00 0x22 0x3a 0xfc # CHECK: mtc0 $1, $2, 7 -0x54 0x64 0x28 0x3b # CHECK: mtc1 $3, $f4 -0x00 0xa6 0x5d 0x3c # CHECK: mtc2 $5, $6 -0x00 0xe8 0x02 0xf4 # CHECK: mthc0 $7, $8, 0 -0x00 0xe8 0x02 0xf4 # CHECK: mthc0 $7, $8 -0x01 0x2a 0x0a 0xf4 # CHECK: mthc0 $9, $10, 1 -0x55 0x6c 0x38 0x3b # CHECK: mthc1 $11, $f12 -0x01 0xae 0x9d 0x3c # CHECK: mthc2 $13, $14 -0x59 0xf0 0x02 0xfc # CHECK: dmtc0 $15, $16, 0 -0x59 0xf0 0x02 0xfc # CHECK: dmtc0 $15, $16 -0x5a 0x32 0x2a 0xfc # CHECK: dmtc0 $17, $18, 5 -0x56 0x74 0x2c 0x3b # CHECK: dmtc1 $19, $f20 -0x02 0xb6 0x7d 0x3c # CHECK: dmtc2 $21, $22 -0x5a 0x51 0x00 0xfc # CHECK: dmfc0 $18, $17 -0x59 0x21 0x08 0xfc # CHECK: dmfc0 $9, $1, 1 -0x55 0x24 0x24 0x3b # CHECK: dmfc1 $9, $f4 -0x01 0xd2 0x6d 0x3c # CHECK: dmfc2 $14, $18 -0x58 0xe6 0x49 0x10 # CHECK: dadd $9, $6, $7 -0x5b 0xe1 0x99 0x10 # CHECK: dadd $19, $1, $ra -0x5f 0x02 0x46 0x9f # CHECK: daddiu $24, $2, 18079 -0x5d 0x26 0xc5 0x67 # CHECK: daddiu $9, $6, -15001 -0x5d 0x29 0xc5 0x67 # CHECK: daddiu $9, $9, -15001 -0x5d 0x23 0x00 0x20 # CHECK: daddiu $9, $3, 32 -0x5f 0x56 0xee 0x16 # CHECK: daddiu $26, $22, -4586 -0x5d 0xeb 0xec 0x5f # CHECK: daddiu $15, $11, -5025 -0x5d 0xce 0x11 0xea # CHECK: daddiu $14, $14, 4586 -0x5e 0x73 0x69 0x3f # CHECK: daddiu $19, $19, 26943 -0x5d 0x7a 0x7c 0xcd # CHECK: daddiu $11, $26, 31949 -0x5f 0xbd 0xff 0xe0 # CHECK: daddiu $sp, $sp, -32 -0x59 0x61 0xd1 0x50 # CHECK: daddu $26, $1, $11 -0x5b 0xe1 0x99 0x50 # CHECK: daddu $19, $1, $ra -0x58 0xe6 0x49 0x50 # CHECK: daddu $9, $6, $7 -0x58 0x69 0x49 0x50 # CHECK: daddu $9, $9, $3 -0x5d 0x26 0xc5 0x67 # CHECK: daddiu $9, $6, -15001 -0x5d 0x29 0x00 0x0a # CHECK: daddiu $9, $9, 10 -0x5e 0x73 0x69 0x3f # CHECK: daddiu $19, $19, 26943 -0x5f 0x02 0x46 0x9f # CHECK: daddiu $24, $2, 18079 -0x5c 0x63 0xff 0xfb # CHECK: daddiu $3, $3, -5 -0x5c 0x64 0xff 0xfb # CHECK: daddiu $3, $4, -5 Index: test/MC/Mips/micromips/invalid-wrong-error.s =================================================================== --- test/MC/Mips/micromips/invalid-wrong-error.s +++ test/MC/Mips/micromips/invalid-wrong-error.s @@ -9,4 +9,5 @@ sdbbp -1 # CHECK: :[[@LINE]]:9: error: expected 20-bit unsigned immediate sdbbp 1024 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled syscall -1 # CHECK: :[[@LINE]]:11: error: expected 20-bit unsigned immediate + syscall $4 # CHECK: :[[@LINE]]:11: error: expected 20-bit unsigned immediate syscall 1024 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled Index: test/MC/Mips/micromips32r6/invalid-wrong-error.s =================================================================== --- test/MC/Mips/micromips32r6/invalid-wrong-error.s +++ test/MC/Mips/micromips32r6/invalid-wrong-error.s @@ -27,3 +27,6 @@ tne $8, $9, $2 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate tne $8, $9, -1 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate tne $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled + syscall -1 # CHECK: :[[@LINE]]:11: error: expected 20-bit unsigned immediate + syscall $4 # CHECK: :[[@LINE]]:11: error: expected 20-bit unsigned immediate + syscall 1024 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled Index: test/MC/Mips/micromips32r6/invalid.s =================================================================== --- test/MC/Mips/micromips32r6/invalid.s +++ test/MC/Mips/micromips32r6/invalid.s @@ -1,123 +1,136 @@ # RUN: not llvm-mc %s -triple=mips -show-encoding -mcpu=mips32r6 -mattr=micromips 2>%t1 # RUN: FileCheck %s < %t1 - addiur1sp $7, 260 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4 addiur1sp $7, 241 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4 + addiur1sp $7, 260 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4 addiur1sp $8, 240 # CHECK: :[[@LINE]]:13: error: invalid operand for instruction - addiur2 $9, $7, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction addiur2 $6, $7, 10 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + addiur2 $9, $7, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction addius5 $2, -9 # CHECK: :[[@LINE]]:15: error: expected 4-bit signed immediate addius5 $2, 8 # CHECK: :[[@LINE]]:15: error: expected 4-bit signed immediate addiusp 1032 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range align $4, $2, $3, -1 # CHECK: :[[@LINE]]:21: error: expected 2-bit unsigned immediate align $4, $2, $3, 4 # CHECK: :[[@LINE]]:21: error: expected 2-bit unsigned immediate - beqzc16 $9, 20 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction beqzc16 $6, 31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address beqzc16 $6, 130 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range - bnezc16 $9, 20 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + beqzc16 $9, 20 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction bnezc16 $6, 31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address bnezc16 $6, 130 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range + bnezc16 $9, 20 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction break -1 # CHECK: :[[@LINE]]:9: error: expected 10-bit unsigned immediate - break 1024 # CHECK: :[[@LINE]]:9: error: expected 10-bit unsigned immediate break -1, 5 # CHECK: :[[@LINE]]:9: error: expected 10-bit unsigned immediate - break 1024, 5 # CHECK: :[[@LINE]]:9: error: expected 10-bit unsigned immediate break 7, -1 # CHECK: :[[@LINE]]:12: error: expected 10-bit unsigned immediate break 7, 1024 # CHECK: :[[@LINE]]:12: error: expected 10-bit unsigned immediate break 1023, 1024 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate + break 1024 # CHECK: :[[@LINE]]:9: error: expected 10-bit unsigned immediate + break 1024, 5 # CHECK: :[[@LINE]]:9: error: expected 10-bit unsigned immediate cache -1, 255($7) # CHECK: :[[@LINE]]:9: error: expected 5-bit unsigned immediate cache 32, 255($7) # CHECK: :[[@LINE]]:9: error: expected 5-bit unsigned immediate - # FIXME: Check '0 < pos + size <= 32' constraint on ext + ei $32 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + # FIXME: Check '0 < pos + size <= 32' constraint on ext ext $2, $3, -1, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate - ext $2, $3, 32, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate ext $2, $3, 1, 0 # CHECK: :[[@LINE]]:18: error: expected immediate in range 1 .. 32 ext $2, $3, 1, 33 # CHECK: :[[@LINE]]:18: error: expected immediate in range 1 .. 32 + ext $2, $3, 32, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate ins $2, $3, -1, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate ins $2, $3, 32, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate - ei $32 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - swe $33, 8($4) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction - # FIXME: This ought to point at the $34 but memory is treated as one operand. - swe $5, 8($34) # CHECK: :[[@LINE]]:11: error: expected memory with $gp and 9-bit signed offset - swe $5, 512($4) # CHECK: :[[@LINE]]:11: error: expected memory with $gp and 9-bit signed offset - lbu16 $9, 8($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lbu16 $3, -2($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + jrcaddiusp 1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 10 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 18 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 33 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 125 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 132 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 lbu16 $3, -2($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + lbu16 $9, 8($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction lbu16 $16, 8($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lhu16 $9, 4($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lhu16 $3, 64($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range lhu16 $3, 64($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + lhu16 $9, 4($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction lhu16 $16, 4($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction li16 $4, -2 # CHECK: :[[@LINE]]:12: error: expected immediate in range -1 .. 126 li16 $4, 127 # CHECK: :[[@LINE]]:12: error: expected immediate in range -1 .. 126 lsa $4, $2, $3, 0 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 4 lsa $4, $2, $3, 5 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 4 - lw16 $9, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lw16 $4, 68($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range lw16 $4, 68($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + lw16 $9, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction lw16 $17, 8($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + lwm16 $5, $6, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected + lwm16 $16, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + lwm16 $16, $17, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + lwm16 $16, $17, $ra, 8($fp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + lwm16 $16, $17, $ra, 64($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + lwm16 $16, $19, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected + lwm16 $16-$20, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + lwm16 $16-$25, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand + lwm32 $5, $6, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected + lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $24, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand + lwm32 $16, $19, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected + lwm32 $16-$25, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand + mfc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate + mfc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate + mfhc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate + mfhc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate + movep $5, $6, $2, $9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + movep $5, $6, $5, $3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + movep $5, $21, $2, $3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + movep $8, $6, $2, $3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + mtc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate + mtc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate + mthc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate + mthc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate pref -1, 255($7) # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate pref 32, 255($7) # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate - teq $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + rotr $2, -1 # CHECK: :[[@LINE]]:12: error: expected 5-bit unsigned immediate + rotr $2, 32 # CHECK: :[[@LINE]]:12: error: expected 5-bit unsigned immediate + rotr $2, $3, -1 # CHECK: :[[@LINE]]:16: error: expected 5-bit unsigned immediate + rotr $2, $3, 32 # CHECK: :[[@LINE]]:16: error: expected 5-bit unsigned immediate + rotrv $9, $6, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sb16 $3, 64($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + sb16 $7, 4($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sb16 $9, 4($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sb16 $16, 4($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sh16 $4, 68($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + sh16 $7, 8($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sh16 $9, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sh16 $16, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sw16 $4, 64($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + sw16 $7, 4($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sw16 $9, 4($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sw16 $16, 4($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + # FIXME: This ought to point at the $34 but memory is treated as one operand. + swe $5, 8($34) # CHECK: :[[@LINE]]:11: error: expected memory with $gp and 9-bit signed offset + swe $5, 512($4) # CHECK: :[[@LINE]]:11: error: expected memory with $gp and 9-bit signed offset + swe $33, 8($4) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + swm16 $5, $6, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected + swm16 $16, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + swm16 $16, $17, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + swm16 $16, $17, $ra, 8($fp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + swm16 $16, $17, $ra, 64($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + swm16 $16, $19, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected + swm16 $16-$20, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + swm16 $16-$25, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand + swm32 $5, $6, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected + swm32 $16, $19, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected + swm32 $16-$25, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand + sync -1 # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate + sync 32 # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate teq $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - tge $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + teq $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction tge $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - tgeu $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + tge $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction tgeu $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - tlt $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + tgeu $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction tlt $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - tltu $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + tlt $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction tltu $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - tne $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + tltu $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction tne $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + tne $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction wait -1 # CHECK: :[[@LINE]]:8: error: expected 10-bit unsigned immediate wait 1024 # CHECK: :[[@LINE]]:8: error: expected 10-bit unsigned immediate - wrpgpr $34, $4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction wrpgpr $3, $33 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - wsbh $34, $4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + wrpgpr $34, $4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction wsbh $3, $33 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - jrcaddiusp 1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 10 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 18 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 33 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 125 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 132 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - lwm16 $5, $6, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected - lwm16 $16, $19, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected - lwm16 $16-$25, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand - lwm16 $16, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lwm16 $16, $17, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lwm16 $16-$20, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lwm16 $16, $17, $ra, 8($fp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lwm16 $16, $17, $ra, 64($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sb16 $9, 4($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sb16 $3, 64($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range - sb16 $16, 4($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sb16 $7, 4($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sh16 $9, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sh16 $4, 68($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range - sh16 $16, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sh16 $7, 8($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sync -1 # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate - sync 32 # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate - sw16 $9, 4($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sw16 $4, 64($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range - sw16 $16, 4($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sw16 $7, 4($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - swm16 $5, $6, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected - swm16 $16, $19, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected - swm16 $16-$25, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand - swm16 $16, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - swm16 $16, $17, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - swm16 $16-$20, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - swm16 $16, $17, $ra, 8($fp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - swm16 $16, $17, $ra, 64($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - mtc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate - mtc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate - mthc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate - mthc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate - mfc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate - mfc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate - mfhc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate - mfhc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate + wsbh $34, $4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction Index: test/MC/Mips/micromips32r6/valid.s =================================================================== --- test/MC/Mips/micromips32r6/valid.s +++ test/MC/Mips/micromips32r6/valid.s @@ -1,41 +1,27 @@ # RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r6 -mattr=micromips | FileCheck %s .set noat - add $3, $4, $5 # CHECK: add $3, $4, $5 # encoding: [0x00,0xa4,0x19,0x10] - addiu $3, $4, 1234 # CHECK: addiu $3, $4, 1234 # encoding: [0x30,0x64,0x04,0xd2] - addu $3, $4, $5 # CHECK: addu $3, $4, $5 # encoding: [0x00,0xa4,0x19,0x50] - addiupc $4, 100 # CHECK: addiupc $4, 100 # encoding: [0x78,0x80,0x00,0x19] addiur1sp $7, 4 # CHECK: addiur1sp $7, 4 # encoding: [0x6f,0x83] addiur2 $6, $7, -1 # CHECK: addiur2 $6, $7, -1 # encoding: [0x6f,0x7e] addiur2 $6, $7, 12 # CHECK: addiur2 $6, $7, 12 # encoding: [0x6f,0x76] addius5 $7, -2 # CHECK: addius5 $7, -2 # encoding: [0x4c,0xfc] + addiusp -16 # CHECK: addiusp -16 # encoding: [0x4f,0xf9] addiusp -1028 # CHECK: addiusp -1028 # encoding: [0x4f,0xff] addiusp -1032 # CHECK: addiusp -1032 # encoding: [0x4f,0xfd] addiusp 1024 # CHECK: addiusp 1024 # encoding: [0x4c,0x01] addiusp 1028 # CHECK: addiusp 1028 # encoding: [0x4c,0x03] - addiusp -16 # CHECK: addiusp -16 # encoding: [0x4f,0xf9] - aluipc $3, 56 # CHECK: aluipc $3, 56 # encoding: [0x78,0x7f,0x00,0x38] - and $3, $4, $5 # CHECK: and $3, $4, $5 # encoding: [0x00,0xa4,0x1a,0x50] - andi $3, $4, 1234 # CHECK: andi $3, $4, 1234 # encoding: [0xd0,0x64,0x04,0xd2] - auipc $3, -1 # CHECK: auipc $3, -1 # encoding: [0x78,0x7e,0xff,0xff] - align $4, $2, $3, 2 # CHECK: align $4, $2, $3, 2 # encoding: [0x00,0x43,0x24,0x1f] - aui $3,$2,-23 # CHECK: aui $3, $2, -23 # encoding: [0x10,0x62,0xff,0xe9] - beqzalc $2, 1332 # CHECK: beqzalc $2, 1332 # encoding: [0x74,0x40,0x02,0x9a] - bnezalc $2, 1332 # CHECK: bnezalc $2, 1332 # encoding: [0x7c,0x40,0x02,0x9a] - bgezalc $2, 1332 # CHECK: bgezalc $2, 1332 # encoding: [0xc0,0x42,0x02,0x9a] - bgtzalc $2, 1332 # CHECK: bgtzalc $2, 1332 # encoding: [0xe0,0x40,0x02,0x9a] - bltzalc $2, 1332 # CHECK: bltzalc $2, 1332 # encoding: [0xe0,0x42,0x02,0x9a] - blezalc $2, 1332 # CHECK: blezalc $2, 1332 # encoding: [0xc0,0x40,0x02,0x9a] - balc 7286128 # CHECK: balc 7286128 # encoding: [0xb4,0x37,0x96,0xb8] + addu16 $6, $17, $4 # CHECK: addu16 $6, $17, $4 # encoding: [0x04,0xcc] + and16 $16, $2 # CHECK: and16 $16, $2 # encoding: [0x44,0x21] + andi16 $4, $5, 8 # CHECK: andi16 $4, $5, 8 # encoding: [0x2e,0x56] b 132 # CHECK: bc16 132 # encoding: [0xcc,0x42] - bc 7286128 # CHECK: bc 7286128 # encoding: [0x94,0x37,0x96,0xb8] bc16 132 # CHECK: bc16 132 # encoding: [0xcc,0x42] beqzc16 $6, 20 # CHECK: beqzc16 $6, 20 # encoding: [0x8f,0x0a] - bnezc16 $6, 20 # CHECK: bnezc16 $6, 20 # encoding: [0xaf,0x0a] bitswap $4, $2 # CHECK: bitswap $4, $2 # encoding: [0x00,0x44,0x0b,0x3c] + bnezc16 $6, 20 # CHECK: bnezc16 $6, 20 # encoding: [0xaf,0x0a] break # CHECK: break # encoding: [0x00,0x00,0x00,0x07] break 7 # CHECK: break 7 # encoding: [0x00,0x07,0x00,0x07] break 7, 5 # CHECK: break 7, 5 # encoding: [0x00,0x07,0x01,0x47] + break16 8 # CHECK: break16 8 # encoding: [0x46,0x1b] cache 1, 8($5) # CHECK: cache 1, 8($5) # encoding: [0x20,0x25,0x60,0x08] clo $11, $a1 # CHECK: clo $11, $5 # encoding: [0x01,0x65,0x4b,0x3c] clz $sp, $gp # CHECK: clz $sp, $gp # encoding: [0x03,0x80,0xe8,0x50] @@ -55,229 +41,285 @@ eret # CHECK: eret # encoding: [0x00,0x00,0xf3,0x7c] eretnc # CHECK: eretnc # encoding: [0x00,0x01,0xf3,0x7c] jalr $9 # CHECK: jalr $9 # encoding: [0x45,0x2b] - jialc $5, 256 # CHECK: jialc $5, 256 # encoding: [0x80,0x05,0x01,0x00] - jic $5, 256 # CHECK: jic $5, 256 # encoding: [0xa0,0x05,0x01,0x00] jrc16 $9 # CHECK: jrc16 $9 # encoding: [0x45,0x23] jrcaddiusp 20 # CHECK: jrcaddiusp 20 # encoding: [0x44,0xb3] + lbu16 $3, 4($17) # CHECK: lbu16 $3, 4($17) # encoding: [0x09,0x94] + lbu16 $3, -1($17) # CHECK: lbu16 $3, -1($17) # encoding: [0x09,0x9f] ldc1 $f8, 300($10) # CHECK: ldc1 $f8, 300($10) # encoding: [0xbd,0x0a,0x01,0x2c] ldc2 $11, 1023($12) # CHECK: ldc2 $11, 1023($12) # encoding: [0x21,0x6c,0x23,0xff] + lhu16 $3, 4($16) # CHECK: lhu16 $3, 4($16) # encoding: [0x29,0x82] + li16 $3, -1 # CHECK: li16 $3, -1 # encoding: [0xed,0xff] lsa $2, $3, $4, 3 # CHECK: lsa $2, $3, $4, 3 # encoding: [0x00,0x43,0x24,0x0f] - lwpc $2,268 # CHECK: lwpc $2, 268 # encoding: [0x78,0x48,0x00,0x43] + lw $3, -256($gp) # CHECK: lw $3, -256($gp) # encoding: [0x65,0xc0] + lw $3, 24($sp) # CHECK: lw $3, 24($sp) # encoding: [0x48,0x66] + lw $3, 32($gp) # CHECK: lw $3, 32($gp) # encoding: [0x65,0x88] + lw $3, 124($sp) # CHECK: lw $3, 124($sp) # encoding: [0x48,0x7f] + lw $3, 252($gp) # CHECK: lw $3, 252($gp) # encoding: [0x65,0xbf] + lw16 $4, 8($17) # CHECK: lw16 $4, 8($17) # encoding: [0x6a,0x12] lwm $16, $17, $ra, 8($sp) # CHECK: lwm16 $16, $17, $ra, 8($sp) # encoding: [0x45,0x22] lwm16 $16, $17, $ra, 8($sp) # CHECK: lwm16 $16, $17, $ra, 8($sp) # encoding: [0x45,0x22] - mod $3, $4, $5 # CHECK: mod $3, $4, $5 # encoding: [0x00,0xa4,0x19,0x58] - modu $3, $4, $5 # CHECK: modu $3, $4, $5 # encoding: [0x00,0xa4,0x19,0xd8] - mul $3, $4, $5 # CHECK mul $3, $4, $5 # encoding: [0x00,0xa4,0x18,0x18] - muh $3, $4, $5 # CHECK muh $3, $4, $5 # encoding: [0x00,0xa4,0x18,0x58] - mulu $3, $4, $5 # CHECK mulu $3, $4, $5 # encoding: [0x00,0xa4,0x18,0x98] - muhu $3, $4, $5 # CHECK muhu $3, $4, $5 # encoding: [0x00,0xa4,0x18,0xd8] - nop # CHECK: nop # encoding: [0x00,0x00,0x00,0x00] - nor $3, $4, $5 # CHECK: nor $3, $4, $5 # encoding: [0x00,0xa4,0x1a,0xd0] - or $3, $4, $5 # CHECK: or $3, $4, $5 # encoding: [0x00,0xa4,0x1a,0x90] - ori $3, $4, 1234 # CHECK: ori $3, $4, 1234 # encoding: [0x50,0x64,0x04,0xd2] - pref 1, 8($5) # CHECK: pref 1, 8($5) # encoding: [0x60,0x25,0x20,0x08] + lwpc $2,268 # CHECK: lwpc $2, 268 # encoding: [0x78,0x48,0x00,0x43] + move16 $3, $5 # CHECK: move16 $3, $5 # encoding: [0x0c,0x65] + movep $5, $6, $2, $3 # CHECK: movep $5, $6, $2, $3 # encoding: [0x84,0x34] + not16 $4, $7 # CHECK: not16 $4, $7 # encoding: [0x46,0x70] + or16 $3, $7 # CHECK: or16 $3, $7 # encoding: [0x45,0xf9] sb16 $3, 4($16) # CHECK: sb16 $3, 4($16) # encoding: [0x89,0x84] - seb $3, $4 # CHECK: seb $3, $4 # encoding: [0x00,0x64,0x2b,0x3c] - seh $3, $4 # CHECK: seh $3, $4 # encoding: [0x00,0x64,0x3b,0x3c] - seleqz $2,$3,$4 # CHECK: seleqz $2, $3, $4 # encoding: [0x00,0x83,0x11,0x40] - selnez $2,$3,$4 # CHECK: selnez $2, $3, $4 # encoding: [0x00,0x83,0x11,0x80] + sdbbp16 8 # CHECK: sdbbp16 8 # encoding: [0x46,0x3b] sh16 $4, 8($17) # CHECK: sh16 $4, 8($17) # encoding: [0xaa,0x14] - sll $4, $3, 7 # CHECK: sll $4, $3, 7 # encoding: [0x00,0x83,0x38,0x00] - sub $3, $4, $5 # CHECK: sub $3, $4, $5 # encoding: [0x00,0xa4,0x19,0x90] - subu $3, $4, $5 # CHECK: subu $3, $4, $5 # encoding: [0x00,0xa4,0x19,0xd0] + sll16 $3, $6, 8 # CHECK: sll16 $3, $6, 8 # encoding: [0x25,0xe0] + srl16 $3, $6, 8 # CHECK: srl16 $3, $6, 8 # encoding: [0x25,0xe1] + subu16 $5, $16, $3 # CHECK: subu16 $5, $16, $3 # encoding: [0x04,0x3b] sw $4, 124($sp) # CHECK: sw $4, 124($sp) # encoding: [0xc8,0x9f] - sw $4, 128($sp) # CHECK: sw $4, 128($sp) # encoding: [0xf8,0x9d,0x00,0x80] sw16 $4, 4($17) # CHECK: sw16 $4, 4($17) # encoding: [0xea,0x11] sw16 $0, 4($17) # CHECK: sw16 $zero, 4($17) # encoding: [0xe8,0x11] swm $16, $17, $ra, 8($sp) # CHECK: swm16 $16, $17, $ra, 8($sp) # encoding: [0x45,0x2a] swm16 $16, $17, $ra, 8($sp) # CHECK: swm16 $16, $17, $ra, 8($sp) # encoding: [0x45,0x2a] - wrpgpr $3, $4 # CHECK: wrpgpr $3, $4 # encoding: [0x00,0x64,0xf1,0x7c] - wsbh $3, $4 # CHECK: wsbh $3, $4 # encoding: [0x00,0x64,0x7b,0x3c] - pause # CHECK: pause # encoding: [0x00,0x00,0x28,0x00] - rdhwr $5, $29, 2 # CHECK: rdhwr $5, $29, 2 # encoding: [0x00,0xbd,0x11,0xc0] - rdhwr $5, $29, 0 # CHECK: rdhwr $5, $29 # encoding: [0x00,0xbd,0x01,0xc0] - rdhwr $5, $29 # CHECK: rdhwr $5, $29 # encoding: [0x00,0xbd,0x01,0xc0] - wait # CHECK: wait # encoding: [0x00,0x00,0x93,0x7c] - wait 17 # CHECK: wait 17 # encoding: [0x00,0x11,0x93,0x7c] - ssnop # CHECK: ssnop # encoding: [0x00,0x00,0x08,0x00] - sync # CHECK: sync # encoding: [0x00,0x00,0x6b,0x7c] - sync 17 # CHECK: sync 17 # encoding: [0x00,0x11,0x6b,0x7c] - synci 8($5) # CHECK: synci 8($5) # encoding: [0x41,0x85,0x00,0x08] - rdpgpr $3, $9 # CHECK: $3, $9 # encoding: [0x00,0x69,0xe1,0x7c] - sdbbp # CHECK: sdbbp # encoding: [0x00,0x00,0xdb,0x7c] - sdbbp 34 # CHECK: sdbbp 34 # encoding: [0x00,0x22,0xdb,0x7c] - xor $3, $4, $5 # CHECK: xor $3, $4, $5 # encoding: [0x00,0xa4,0x1b,0x10] - xori $3, $4, 1234 # CHECK: xori $3, $4, 1234 # encoding: [0x70,0x64,0x04,0xd2] - sw $5, 4($6) # CHECK: sw $5, 4($6) # encoding: [0xf8,0xa6,0x00,0x04] - swe $5, 8($4) # CHECK: swe $5, 8($4) # encoding: [0x60,0xa4,0xae,0x08] - add.s $f3, $f4, $f5 # CHECK: add.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0x30] - add.d $f2, $f4, $f6 # CHECK: add.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0x30] - sub.s $f3, $f4, $f5 # CHECK: sub.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0x70] - sub.d $f2, $f4, $f6 # CHECK: sub.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0x70] - mul.s $f3, $f4, $f5 # CHECK: mul.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0xb0] - mul.d $f2, $f4, $f6 # CHECK: mul.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0xb0] - div.s $f3, $f4, $f5 # CHECK: div.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0xf0] - div.d $f2, $f4, $f6 # CHECK: div.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0xf0] - maddf.s $f3, $f4, $f5 # CHECK: maddf.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x19,0xb8] - maddf.d $f3, $f4, $f5 # CHECK: maddf.d $f3, $f4, $f5 # encoding: [0x54,0xa4,0x1b,0xb8] - msubf.s $f3, $f4, $f5 # CHECK: msubf.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x19,0xf8] - msubf.d $f3, $f4, $f5 # CHECK: msubf.d $f3, $f4, $f5 # encoding: [0x54,0xa4,0x1b,0xf8] - mov.s $f6, $f7 # CHECK: mov.s $f6, $f7 # encoding: [0x54,0xc7,0x00,0x7b] - mov.d $f4, $f6 # CHECK: mov.d $f4, $f6 # encoding: [0x54,0x86,0x20,0x7b] - neg.s $f6, $f7 # CHECK: neg.s $f6, $f7 # encoding: [0x54,0xc7,0x0b,0x7b] - neg.d $f4, $f6 # CHECK: neg.d $f4, $f6 # encoding: [0x54,0x86,0x2b,0x7b] - max.s $f5, $f4, $f3 # CHECK: max.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x0b] - max.d $f5, $f4, $f3 # CHECK: max.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x0b] - maxa.s $f5, $f4, $f3 # CHECK: maxa.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x2b] - maxa.d $f5, $f4, $f3 # CHECK: maxa.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x2b] - min.s $f5, $f4, $f3 # CHECK: min.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x03] - min.d $f5, $f4, $f3 # CHECK: min.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x03] - mina.s $f5, $f4, $f3 # CHECK: mina.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x23] - mina.d $f5, $f4, $f3 # CHECK: mina.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x23] - cmp.af.s $f2, $f3, $f4 # CHECK: cmp.af.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x05] + xor16 $17, $5 # CHECK: xor16 $17, $5 # encoding: [0x44,0xd8] + abs.d $f2, $f4 # CHECK: abs.d $f2, $f4 # encoding: [0x54,0x44,0x23,0x7b] + abs.s $f3, $f5 # CHECK: abs.s $f3, $f5 # encoding: [0x54,0x65,0x03,0x7b] + add $3, $4, $5 # CHECK: add $3, $4, $5 # encoding: [0x00,0xa4,0x19,0x10] + add.d $f2, $f4, $f6 # CHECK: add.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0x30] + add.s $f3, $f4, $f5 # CHECK: add.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0x30] + addiu $3, $4, 1234 # CHECK: addiu $3, $4, 1234 # encoding: [0x30,0x64,0x04,0xd2] + addiupc $4, 100 # CHECK: addiupc $4, 100 # encoding: [0x78,0x80,0x00,0x19] + addu $3, $4, $5 # CHECK: addu $3, $4, $5 # encoding: [0x00,0xa4,0x19,0x50] + align $4, $2, $3, 2 # CHECK: align $4, $2, $3, 2 # encoding: [0x00,0x43,0x24,0x1f] + aluipc $3, 56 # CHECK: aluipc $3, 56 # encoding: [0x78,0x7f,0x00,0x38] + and $3, $4, $5 # CHECK: and $3, $4, $5 # encoding: [0x00,0xa4,0x1a,0x50] + andi $3, $4, 1234 # CHECK: andi $3, $4, 1234 # encoding: [0xd0,0x64,0x04,0xd2] + aui $3,$2,-23 # CHECK: aui $3, $2, -23 # encoding: [0x10,0x62,0xff,0xe9] + auipc $3, -1 # CHECK: auipc $3, -1 # encoding: [0x78,0x7e,0xff,0xff] + balc 7286128 # CHECK: balc 7286128 # encoding: [0xb4,0x37,0x96,0xb8] + bc 7286128 # CHECK: bc 7286128 # encoding: [0x94,0x37,0x96,0xb8] + beqzalc $2, 1332 # CHECK: beqzalc $2, 1332 # encoding: [0x74,0x40,0x02,0x9a] + bgezalc $2, 1332 # CHECK: bgezalc $2, 1332 # encoding: [0xc0,0x42,0x02,0x9a] + bgtzalc $2, 1332 # CHECK: bgtzalc $2, 1332 # encoding: [0xe0,0x40,0x02,0x9a] + bitswap $4, $2 # CHECK: bitswap $4, $2 # encoding: [0x00,0x44,0x0b,0x3c] + blezalc $2, 1332 # CHECK: blezalc $2, 1332 # encoding: [0xc0,0x40,0x02,0x9a] + bltzalc $2, 1332 # CHECK: bltzalc $2, 1332 # encoding: [0xe0,0x42,0x02,0x9a] + bnezalc $2, 1332 # CHECK: bnezalc $2, 1332 # encoding: [0x7c,0x40,0x02,0x9a] + break # CHECK: break # encoding: [0x00,0x00,0x00,0x07] + break 7 # CHECK: break 7 # encoding: [0x00,0x07,0x00,0x07] + break 7, 5 # CHECK: break 7, 5 # encoding: [0x00,0x07,0x01,0x47] + cache 1, 8($5) # CHECK: cache 1, 8($5) # encoding: [0x20,0x25,0x60,0x08] + cachee 1, 8($5) # CHECK: cachee 1, 8($5) # encoding: [0x60,0x25,0xa6,0x08] + ceil.l.d $f2, $f4 # CHECK: ceil.l.d $f2, $f4 # encoding: [0x54,0x44,0x53,0x3b] + ceil.l.s $f3, $f5 # CHECK: ceil.l.s $f3, $f5 # encoding: [0x54,0x65,0x13,0x3b] + ceil.w.d $f2, $f4 # CHECK: ceil.w.d $f2, $f4 # encoding: [0x54,0x44,0x5b,0x3b] + ceil.w.s $f3, $f5 # CHECK: ceil.w.s $f3, $f5 # encoding: [0x54,0x65,0x1b,0x3b] + class.d $f2, $f4 # CHECK: class.d $f2, $f4 # encoding: [0x54,0x82,0x02,0x60] + class.s $f2, $f3 # CHECK: class.s $f2, $f3 # encoding: [0x54,0x62,0x00,0x60] + clo $11, $a1 # CHECK: clo $11, $5 # encoding: [0x01,0x65,0x4b,0x3c] + clz $sp, $gp # CHECK: clz $sp, $gp # encoding: [0x03,0x80,0xe8,0x50] cmp.af.d $f2, $f3, $f4 # CHECK: cmp.af.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x15] - cmp.un.s $f2, $f3, $f4 # CHECK: cmp.un.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x45] - cmp.un.d $f2, $f3, $f4 # CHECK: cmp.un.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x55] - cmp.eq.s $f2, $f3, $f4 # CHECK: cmp.eq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x85] + cmp.af.s $f2, $f3, $f4 # CHECK: cmp.af.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x05] cmp.eq.d $f2, $f3, $f4 # CHECK: cmp.eq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x95] - cmp.ueq.s $f2, $f3, $f4 # CHECK: cmp.ueq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0xc5] - cmp.ueq.d $f2, $f3, $f4 # CHECK: cmp.ueq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0xd5] - cmp.lt.s $f2, $f3, $f4 # CHECK: cmp.lt.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x05] - cmp.lt.d $f2, $f3, $f4 # CHECK: cmp.lt.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x15] - cmp.ult.s $f2, $f3, $f4 # CHECK: cmp.ult.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x45] - cmp.ult.d $f2, $f3, $f4 # CHECK: cmp.ult.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x55] - cmp.le.s $f2, $f3, $f4 # CHECK: cmp.le.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x85] + cmp.eq.s $f2, $f3, $f4 # CHECK: cmp.eq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x85] cmp.le.d $f2, $f3, $f4 # CHECK: cmp.le.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x95] - cmp.ule.s $f2, $f3, $f4 # CHECK: cmp.ule.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0xc5] - cmp.ule.d $f2, $f3, $f4 # CHECK: cmp.ule.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0xd5] - cmp.saf.s $f2, $f3, $f4 # CHECK: cmp.saf.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x05] + cmp.le.s $f2, $f3, $f4 # CHECK: cmp.le.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x85] + cmp.lt.d $f2, $f3, $f4 # CHECK: cmp.lt.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x15] + cmp.lt.s $f2, $f3, $f4 # CHECK: cmp.lt.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x05] cmp.saf.d $f2, $f3, $f4 # CHECK: cmp.saf.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x15] - cmp.sun.s $f2, $f3, $f4 # CHECK: cmp.sun.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x45] - cmp.sun.d $f2, $f3, $f4 # CHECK: cmp.sun.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x55] - cmp.seq.s $f2, $f3, $f4 # CHECK: cmp.seq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x85] + cmp.saf.s $f2, $f3, $f4 # CHECK: cmp.saf.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x05] cmp.seq.d $f2, $f3, $f4 # CHECK: cmp.seq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x95] - cmp.sueq.s $f2, $f3, $f4 # CHECK: cmp.sueq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0xc5] - cmp.sueq.d $f2, $f3, $f4 # CHECK: cmp.sueq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0xd5] - cmp.slt.s $f2, $f3, $f4 # CHECK: cmp.slt.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x05] - cmp.slt.d $f2, $f3, $f4 # CHECK: cmp.slt.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x15] - cmp.sult.s $f2, $f3, $f4 # CHECK: cmp.sult.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x45] - cmp.sult.d $f2, $f3, $f4 # CHECK: cmp.sult.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x55] - cmp.sle.s $f2, $f3, $f4 # CHECK: cmp.sle.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x85] + cmp.seq.s $f2, $f3, $f4 # CHECK: cmp.seq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x85] cmp.sle.d $f2, $f3, $f4 # CHECK: cmp.sle.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x95] - cmp.sule.s $f2, $f3, $f4 # CHECK: cmp.sule.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0xc5] + cmp.sle.s $f2, $f3, $f4 # CHECK: cmp.sle.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x85] + cmp.slt.d $f2, $f3, $f4 # CHECK: cmp.slt.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x15] + cmp.slt.s $f2, $f3, $f4 # CHECK: cmp.slt.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x05] + cmp.sueq.d $f2, $f3, $f4 # CHECK: cmp.sueq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0xd5] + cmp.sueq.s $f2, $f3, $f4 # CHECK: cmp.sueq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0xc5] cmp.sule.d $f2, $f3, $f4 # CHECK: cmp.sule.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0xd5] - cvt.l.s $f3, $f4 # CHECK: cvt.l.s $f3, $f4 # encoding: [0x54,0x64,0x01,0x3b] - cvt.l.d $f3, $f4 # CHECK: cvt.l.d $f3, $f4 # encoding: [0x54,0x64,0x41,0x3b] - cvt.w.s $f3, $f4 # CHECK: cvt.w.s $f3, $f4 # encoding: [0x54,0x64,0x09,0x3b] - cvt.w.d $f3, $f4 # CHECK: cvt.w.d $f3, $f4 # encoding: [0x54,0x64,0x49,0x3b] + cmp.sule.s $f2, $f3, $f4 # CHECK: cmp.sule.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0xc5] + cmp.sult.d $f2, $f3, $f4 # CHECK: cmp.sult.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x55] + cmp.sult.s $f2, $f3, $f4 # CHECK: cmp.sult.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x45] + cmp.sun.d $f2, $f3, $f4 # CHECK: cmp.sun.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x55] + cmp.sun.s $f2, $f3, $f4 # CHECK: cmp.sun.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x45] + cmp.ueq.d $f2, $f3, $f4 # CHECK: cmp.ueq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0xd5] + cmp.ueq.s $f2, $f3, $f4 # CHECK: cmp.ueq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0xc5] + cmp.ule.d $f2, $f3, $f4 # CHECK: cmp.ule.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0xd5] + cmp.ule.s $f2, $f3, $f4 # CHECK: cmp.ule.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0xc5] + cmp.ult.d $f2, $f3, $f4 # CHECK: cmp.ult.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x55] + cmp.ult.s $f2, $f3, $f4 # CHECK: cmp.ult.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x45] + cmp.un.d $f2, $f3, $f4 # CHECK: cmp.un.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x55] + cmp.un.s $f2, $f3, $f4 # CHECK: cmp.un.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x45] + cvt.d.l $f2, $f4 # CHECK: cvt.d.l $f2, $f4 # encoding: [0x54,0x44,0x53,0x7b] cvt.d.s $f2, $f4 # CHECK: cvt.d.s $f2, $f4 # encoding: [0x54,0x44,0x13,0x7b] cvt.d.w $f2, $f4 # CHECK: cvt.d.w $f2, $f4 # encoding: [0x54,0x44,0x33,0x7b] - cvt.d.l $f2, $f4 # CHECK: cvt.d.l $f2, $f4 # encoding: [0x54,0x44,0x53,0x7b] + cvt.l.d $f3, $f4 # CHECK: cvt.l.d $f3, $f4 # encoding: [0x54,0x64,0x41,0x3b] + cvt.l.s $f3, $f4 # CHECK: cvt.l.s $f3, $f4 # encoding: [0x54,0x64,0x01,0x3b] cvt.s.d $f2, $f4 # CHECK: cvt.s.d $f2, $f4 # encoding: [0x54,0x44,0x1b,0x7b] - cvt.s.w $f3, $f4 # CHECK: cvt.s.w $f3, $f4 # encoding: [0x54,0x64,0x3b,0x7b] cvt.s.l $f3, $f4 # CHECK: cvt.s.l $f3, $f4 # encoding: [0x54,0x64,0x5b,0x7b] - abs.s $f3, $f5 # CHECK: abs.s $f3, $f5 # encoding: [0x54,0x65,0x03,0x7b] - abs.d $f2, $f4 # CHECK: abs.d $f2, $f4 # encoding: [0x54,0x44,0x23,0x7b] - floor.l.s $f3, $f5 # CHECK: floor.l.s $f3, $f5 # encoding: [0x54,0x65,0x03,0x3b] - floor.l.d $f2, $f4 # CHECK: floor.l.d $f2, $f4 # encoding: [0x54,0x44,0x43,0x3b] - floor.w.s $f3, $f5 # CHECK: floor.w.s $f3, $f5 # encoding: [0x54,0x65,0x0b,0x3b] - floor.w.d $f2, $f4 # CHECK: floor.w.d $f2, $f4 # encoding: [0x54,0x44,0x4b,0x3b] - ceil.l.s $f3, $f5 # CHECK: ceil.l.s $f3, $f5 # encoding: [0x54,0x65,0x13,0x3b] - ceil.l.d $f2, $f4 # CHECK: ceil.l.d $f2, $f4 # encoding: [0x54,0x44,0x53,0x3b] - ceil.w.s $f3, $f5 # CHECK: ceil.w.s $f3, $f5 # encoding: [0x54,0x65,0x1b,0x3b] - ceil.w.d $f2, $f4 # CHECK: ceil.w.d $f2, $f4 # encoding: [0x54,0x44,0x5b,0x3b] - trunc.l.s $f3, $f5 # CHECK: trunc.l.s $f3, $f5 # encoding: [0x54,0x65,0x23,0x3b] - trunc.l.d $f2, $f4 # CHECK: trunc.l.d $f2, $f4 # encoding: [0x54,0x44,0x63,0x3b] - trunc.w.s $f3, $f5 # CHECK: trunc.w.s $f3, $f5 # encoding: [0x54,0x65,0x2b,0x3b] - trunc.w.d $f2, $f4 # CHECK: trunc.w.d $f2, $f4 # encoding: [0x54,0x44,0x6b,0x3b] - sqrt.s $f3, $f5 # CHECK: sqrt.s $f3, $f5 # encoding: [0x54,0x65,0x0a,0x3b] - sqrt.d $f2, $f4 # CHECK: sqrt.d $f2, $f4 # encoding: [0x54,0x44,0x4a,0x3b] - rsqrt.s $f3, $f5 # CHECK: rsqrt.s $f3, $f5 # encoding: [0x54,0x65,0x02,0x3b] - rsqrt.d $f2, $f4 # CHECK: rsqrt.d $f2, $f4 # encoding: [0x54,0x44,0x42,0x3b] - lw $3, -260($gp) # CHECK: lw $3, -260($gp) # encoding: [0xfc,0x7c,0xfe,0xfc] - lw $3, -256($gp) # CHECK: lw $3, -256($gp) # encoding: [0x65,0xc0] - lw $3, 32($gp) # CHECK: lw $3, 32($gp) # encoding: [0x65,0x88] - lw $3, 252($gp) # CHECK: lw $3, 252($gp) # encoding: [0x65,0xbf] - lw $3, 256($gp) # CHECK: lw $3, 256($gp) # encoding: [0xfc,0x7c,0x01,0x00] - lw $3, 24($sp) # CHECK: lw $3, 24($sp) # encoding: [0x48,0x66] - lw $3, 124($sp) # CHECK: lw $3, 124($sp) # encoding: [0x48,0x7f] - lw $3, 128($sp) # CHECK: lw $3, 128($sp) # encoding: [0xfc,0x7d,0x00,0x80] - lw16 $4, 8($17) # CHECK: lw16 $4, 8($17) # encoding: [0x6a,0x12] - lhu16 $3, 4($16) # CHECK: lhu16 $3, 4($16) # encoding: [0x29,0x82] - lbu16 $3, 4($17) # CHECK: lbu16 $3, 4($17) # encoding: [0x09,0x94] - lbu16 $3, -1($17) # CHECK: lbu16 $3, -1($17) # encoding: [0x09,0x9f] - sb $4, 6($5) # CHECK: sb $4, 6($5) # encoding: [0x18,0x85,0x00,0x06] - sbe $4, 6($5) # CHECK: sbe $4, 6($5) # encoding: [0x60,0x85,0xa8,0x06] - sce $4, 6($5) # CHECK: sce $4, 6($5) # encoding: [0x60,0x85,0xac,0x06] - sh $4, 6($5) # CHECK: sh $4, 6($5) # encoding: [0x38,0x85,0x00,0x06] - she $4, 6($5) # CHECK: she $4, 6($5) # encoding: [0x60,0x85,0xaa,0x06] - lle $4, 6($5) # CHECK: lle $4, 6($5) # encoding: [0x60,0x85,0x6c,0x06] - lwe $4, 6($5) # CHECK: lwe $4, 6($5) # encoding: [0x60,0x85,0x6e,0x06] - lw $4, 6($5) # CHECK: lw $4, 6($5) # encoding: [0xfc,0x85,0x00,0x06] - lui $6, 17767 # CHECK: lui $6, 17767 # encoding: [0x10,0xc0,0x45,0x67] - addu16 $6, $17, $4 # CHECK: addu16 $6, $17, $4 # encoding: [0x04,0xcc] - and16 $16, $2 # CHECK: and16 $16, $2 # encoding: [0x44,0x21] - andi16 $4, $5, 8 # CHECK: andi16 $4, $5, 8 # encoding: [0x2e,0x56] - not16 $4, $7 # CHECK: not16 $4, $7 # encoding: [0x46,0x70] - or16 $3, $7 # CHECK: or16 $3, $7 # encoding: [0x45,0xf9] - sll16 $3, $6, 8 # CHECK: sll16 $3, $6, 8 # encoding: [0x25,0xe0] - srl16 $3, $6, 8 # CHECK: srl16 $3, $6, 8 # encoding: [0x25,0xe1] - prefe 1, 8($5) # CHECK: prefe 1, 8($5) # encoding: [0x60,0x25,0xa4,0x08] - cachee 1, 8($5) # CHECK: cachee 1, 8($5) # encoding: [0x60,0x25,0xa6,0x08] - teq $8, $9 # CHECK: teq $8, $9 # encoding: [0x01,0x28,0x00,0x3c] - teq $5, $7, 15 # CHECK: teq $5, $7, 15 # encoding: [0x00,0xe5,0xf0,0x3c] - tge $7, $10 # CHECK: tge $7, $10 # encoding: [0x01,0x47,0x02,0x3c] - tge $7, $19, 15 # CHECK: tge $7, $19, 15 # encoding: [0x02,0x67,0xf2,0x3c] - tgeu $22, $gp # CHECK: tgeu $22, $gp # encoding: [0x03,0x96,0x04,0x3c] - tgeu $20, $14, 15 # CHECK: tgeu $20, $14, 15 # encoding: [0x01,0xd4,0xf4,0x3c] - tlt $15, $13 # CHECK: tlt $15, $13 # encoding: [0x01,0xaf,0x08,0x3c] - tlt $2, $19, 15 # CHECK: tlt $2, $19, 15 # encoding: [0x02,0x62,0xf8,0x3c] - tltu $11, $16 # CHECK: tltu $11, $16 # encoding: [0x02,0x0b,0x0a,0x3c] - tltu $16, $sp, 15 # CHECK: tltu $16, $sp, 15 # encoding: [0x03,0xb0,0xfa,0x3c] - tne $6, $17 # CHECK: tne $6, $17 # encoding: [0x02,0x26,0x0c,0x3c] - tne $7, $8, 15 # CHECK: tne $7, $8, 15 # encoding: [0x01,0x07,0xfc,0x3c] - break16 8 # CHECK: break16 8 # encoding: [0x46,0x1b] - li16 $3, -1 # CHECK: li16 $3, -1 # encoding: [0xed,0xff] - move16 $3, $5 # CHECK: move16 $3, $5 # encoding: [0x0c,0x65] - sdbbp16 8 # CHECK: sdbbp16 8 # encoding: [0x46,0x3b] - subu16 $5, $16, $3 # CHECK: subu16 $5, $16, $3 # encoding: [0x04,0x3b] - xor16 $17, $5 # CHECK: xor16 $17, $5 # encoding: [0x44,0xd8] - lb $4, 8($5) # CHECK: lb $4, 8($5) # encoding: [0x1c,0x85,0x00,0x08] - lbu $4, 8($5) # CHECK: lbu $4, 8($5) # encoding: [0x14,0x85,0x00,0x08] - lbe $4, 8($5) # CHECK: lbe $4, 8($5) # encoding: [0x60,0x85,0x68,0x08] - lbue $4, 8($5) # CHECK: lbue $4, 8($5) # encoding: [0x60,0x85,0x60,0x08] - recip.s $f2, $f4 # CHECK: recip.s $f2, $f4 # encoding: [0x54,0x44,0x12,0x3b] - recip.d $f2, $f4 # CHECK: recip.d $f2, $f4 # encoding: [0x54,0x44,0x52,0x3b] - rint.s $f2, $f4 # CHECK: rint.s $f2, $f4 # encoding: [0x54,0x82,0x00,0x20] - rint.d $f2, $f4 # CHECK: rint.d $f2, $f4 # encoding: [0x54,0x82,0x02,0x20] - round.l.s $f2, $f4 # CHECK: round.l.s $f2, $f4 # encoding: [0x54,0x44,0x33,0x3b] - round.l.d $f2, $f4 # CHECK: round.l.d $f2, $f4 # encoding: [0x54,0x44,0x73,0x3b] - round.w.s $f2, $f4 # CHECK: round.w.s $f2, $f4 # encoding: [0x54,0x44,0x3b,0x3b] - round.w.d $f2, $f4 # CHECK: round.w.d $f2, $f4 # encoding: [0x54,0x44,0x7b,0x3b] - sel.s $f1, $f1, $f2 # CHECK: sel.s $f1, $f1, $f2 # encoding: [0x54,0x41,0x08,0xb8] - sel.d $f0, $f2, $f4 # CHECK: sel.d $f0, $f2, $f4 # encoding: [0x54,0x82,0x02,0xb8] - seleqz.s $f1, $f2, $f3 # CHECK: seleqz.s $f1, $f2, $f3 # encoding: [0x54,0x62,0x08,0x38] - seleqz.d $f2, $f4, $f8 # CHECK: seleqz.d $f2, $f4, $f8 # encoding: [0x55,0x04,0x12,0x38] - selnez.s $f1, $f2, $f3 # CHECK: selnez.s $f1, $f2, $f3 # encoding: [0x54,0x62,0x08,0x78] - selnez.d $f2, $f4, $f8 # CHECK: selnez.d $f2, $f4, $f8 # encoding: [0x55,0x04,0x12,0x78] - class.s $f2, $f3 # CHECK: class.s $f2, $f3 # encoding: [0x54,0x62,0x00,0x60] - class.d $f2, $f4 # CHECK: class.d $f2, $f4 # encoding: [0x54,0x82,0x02,0x60] - deret # CHECK: deret # encoding: [0x00,0x00,0xe3,0x7c] - tlbinv # CHECK: tlbinv # encoding: [0x00,0x00,0x43,0x7c] - tlbinvf # CHECK: tlbinvf # encoding: [0x00,0x00,0x53,0x7c] - mtc0 $5, $9 # CHECK: mtc0 $5, $9, 0 # encoding: [0x00,0xa9,0x02,0xfc] - mtc0 $1, $2, 7 # CHECK: mtc0 $1, $2, 7 # encoding: [0x00,0x22,0x3a,0xfc] - mtc1 $3, $f4 # CHECK: mtc1 $3, $f4 # encoding: [0x54,0x64,0x28,0x3b] - mtc2 $5, $6 # CHECK: mtc2 $5, $6 # encoding: [0x00,0xa6,0x5d,0x3c] - mthc0 $7, $8 # CHECK: mthc0 $7, $8, 0 # encoding: [0x00,0xe8,0x02,0xf4] - mthc0 $9, $10, 1 # CHECK: mthc0 $9, $10, 1 # encoding: [0x01,0x2a,0x0a,0xf4] - mthc1 $11, $f12 # CHECK: mthc1 $11, $f12 # encoding: [0x55,0x6c,0x38,0x3b] - mthc2 $13, $14 # CHECK: mthc2 $13, $14 # encoding: [0x01,0xae,0x9d,0x3c] - mfc0 $3, $7 # CHECK: mfc0 $3, $7, 0 # encoding: [0x00,0x67,0x00,0xfc] - mfc0 $3, $7, 3 # CHECK: mfc0 $3, $7, 3 # encoding: [0x00,0x67,0x18,0xfc] - mfc1 $5, $f10 # CHECK: mfc1 $5, $f10 # encoding: [0x54,0xaa,0x20,0x3b] - mfc2 $15, $5 # CHECK: mfc2 $15, $5 # encoding: [0x01,0xe5,0x4d,0x3c] - mfhc0 $20, $21 # CHECK: mfhc0 $20, $21, 0 # encoding: [0x02,0x95,0x00,0xf4] - mfhc0 $1, $2, 1 # CHECK: mfhc0 $1, $2, 1 # encoding: [0x00,0x22,0x08,0xf4] - mfhc1 $zero, $f6 # CHECK: mfhc1 $zero, $f6 # encoding: [0x54,0x06,0x30,0x3b] - mfhc2 $23, $16 # CHECK: mfhc2 $23, $16 # encoding: [0x02,0xf0,0x8d,0x3c] + cvt.s.w $f3, $f4 # CHECK: cvt.s.w $f3, $f4 # encoding: [0x54,0x64,0x3b,0x7b] + cvt.w.d $f3, $f4 # CHECK: cvt.w.d $f3, $f4 # encoding: [0x54,0x64,0x49,0x3b] + cvt.w.s $f3, $f4 # CHECK: cvt.w.s $f3, $f4 # encoding: [0x54,0x64,0x09,0x3b] + deret # CHECK: deret # encoding: [0x00,0x00,0xe3,0x7c] + di # CHECK: di # encoding: [0x00,0x00,0x47,0x7c] + di $0 # CHECK: di # encoding: [0x00,0x00,0x47,0x7c] + di $15 # CHECK: di $15 # encoding: [0x00,0x0f,0x47,0x7c] + div $3, $4, $5 # CHECK: div $3, $4, $5 # encoding: [0x00,0xa4,0x19,0x18] + div.d $f2, $f4, $f6 # CHECK: div.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0xf0] + div.s $f3, $f4, $f5 # CHECK: div.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0xf0] + divu $3, $4, $5 # CHECK: divu $3, $4, $5 # encoding: [0x00,0xa4,0x19,0x98] + ehb # CHECK: ehb # encoding: [0x00,0x00,0x18,0x00] + ei # CHECK: ei # encoding: [0x00,0x00,0x57,0x7c] + ei $0 # CHECK: ei # encoding: [0x00,0x00,0x57,0x7c] + ei $10 # CHECK: ei $10 # encoding: [0x00,0x0a,0x57,0x7c] + eret # CHECK: eret # encoding: [0x00,0x00,0xf3,0x7c] + eretnc # CHECK: eretnc # encoding: [0x00,0x01,0xf3,0x7c] + floor.l.d $f2, $f4 # CHECK: floor.l.d $f2, $f4 # encoding: [0x54,0x44,0x43,0x3b] + floor.l.s $f3, $f5 # CHECK: floor.l.s $f3, $f5 # encoding: [0x54,0x65,0x03,0x3b] + floor.w.d $f2, $f4 # CHECK: floor.w.d $f2, $f4 # encoding: [0x54,0x44,0x4b,0x3b] + floor.w.s $f3, $f5 # CHECK: floor.w.s $f3, $f5 # encoding: [0x54,0x65,0x0b,0x3b] + jialc $5, 256 # CHECK: jialc $5, 256 # encoding: [0x80,0x05,0x01,0x00] + jic $5, 256 # CHECK: jic $5, 256 # encoding: [0xa0,0x05,0x01,0x00] + lb $4, 8($5) # CHECK: lb $4, 8($5) # encoding: [0x1c,0x85,0x00,0x08] + lbe $4, 8($5) # CHECK: lbe $4, 8($5) # encoding: [0x60,0x85,0x68,0x08] + lbu $4, 8($5) # CHECK: lbu $4, 8($5) # encoding: [0x14,0x85,0x00,0x08] + lbue $4, 8($5) # CHECK: lbue $4, 8($5) # encoding: [0x60,0x85,0x60,0x08] + ll $2, 8($4) # CHECK: ll $2, 8($4) # encoding: [0x60,0x44,0x30,0x08] + lle $4, 6($5) # CHECK: lle $4, 6($5) # encoding: [0x60,0x85,0x6c,0x06] + lsa $2, $3, $4, 3 # CHECK: lsa $2, $3, $4, 3 # encoding: [0x00,0x43,0x24,0x0f] + lui $6, 17767 # CHECK: lui $6, 17767 # encoding: [0x10,0xc0,0x45,0x67] + lw $3, -260($gp) # CHECK: lw $3, -260($gp) # encoding: [0xfc,0x7c,0xfe,0xfc] + lw $3, 128($sp) # CHECK: lw $3, 128($sp) # encoding: [0xfc,0x7d,0x00,0x80] + lw $3, 256($gp) # CHECK: lw $3, 256($gp) # encoding: [0xfc,0x7c,0x01,0x00] + lw $4, 6($5) # CHECK: lw $4, 6($5) # encoding: [0xfc,0x85,0x00,0x06] + lwe $4, 6($5) # CHECK: lwe $4, 6($5) # encoding: [0x60,0x85,0x6e,0x06] + lwm32 $16, $17, 8($4) # CHECK: lwm32 $16, $17, 8($4) # encoding: [0x20,0x44,0x50,0x08] + lwm32 $16, $17, 8($sp) # CHECK: lwm32 $16, $17, 8($sp) # encoding: [0x20,0x5d,0x50,0x08] + lwm32 $16, $17, $ra, 8($4) # CHECK: lwm32 $16, $17, $ra, 8($4) # encoding: [0x22,0x44,0x50,0x08] + lwm32 $16, $17, $ra, 64($sp) # CHECK: lwm32 $16, $17, $ra, 64($sp) # encoding: [0x22,0x5d,0x50,0x40] + lwm32 $16, $17, $18, $19, 8($4) # CHECK: lwm32 $16, $17, $18, $19, 8($4) # encoding: [0x20,0x84,0x50,0x08] + lwm32 $16, $17, $18, $19, $ra, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $ra, 8($4) # encoding: [0x22,0x84,0x50,0x08] + lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, 8($4) # encoding: [0x21,0x24,0x50,0x08] + lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # encoding: [0x23,0x24,0x50,0x08] + lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # encoding: [0x23,0x24,0x50,0x08] + lwpc $2, 268 # CHECK: lwpc $2, 268 # encoding: [0x78,0x48,0x00,0x43] + maddf.d $f3, $f4, $f5 # CHECK: maddf.d $f3, $f4, $f5 # encoding: [0x54,0xa4,0x1b,0xb8] + maddf.s $f3, $f4, $f5 # CHECK: maddf.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x19,0xb8] + max.d $f5, $f4, $f3 # CHECK: max.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x0b] + max.s $f5, $f4, $f3 # CHECK: max.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x0b] + maxa.d $f5, $f4, $f3 # CHECK: maxa.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x2b] + maxa.s $f5, $f4, $f3 # CHECK: maxa.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x2b] + mfc0 $3, $7 # CHECK: mfc0 $3, $7, 0 # encoding: [0x00,0x67,0x00,0xfc] + mfc0 $3, $7, 3 # CHECK: mfc0 $3, $7, 3 # encoding: [0x00,0x67,0x18,0xfc] + mfc1 $5, $f10 # CHECK: mfc1 $5, $f10 # encoding: [0x54,0xaa,0x20,0x3b] + mfc2 $15, $5 # CHECK: mfc2 $15, $5 # encoding: [0x01,0xe5,0x4d,0x3c] + mfhc0 $1, $2, 1 # CHECK: mfhc0 $1, $2, 1 # encoding: [0x00,0x22,0x08,0xf4] + mfhc0 $20, $21 # CHECK: mfhc0 $20, $21, 0 # encoding: [0x02,0x95,0x00,0xf4] + mfhc1 $zero, $f6 # CHECK: mfhc1 $zero, $f6 # encoding: [0x54,0x06,0x30,0x3b] + mfhc2 $23, $16 # CHECK: mfhc2 $23, $16 # encoding: [0x02,0xf0,0x8d,0x3c] + min.d $f5, $f4, $f3 # CHECK: min.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x03] + min.s $f5, $f4, $f3 # CHECK: min.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x03] + mina.d $f5, $f4, $f3 # CHECK: mina.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x23] + mina.s $f5, $f4, $f3 # CHECK: mina.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x23] + mod $3, $4, $5 # CHECK: mod $3, $4, $5 # encoding: [0x00,0xa4,0x19,0x58] + modu $3, $4, $5 # CHECK: modu $3, $4, $5 # encoding: [0x00,0xa4,0x19,0xd8] + mov.d $f4, $f6 # CHECK: mov.d $f4, $f6 # encoding: [0x54,0x86,0x20,0x7b] + mov.s $f6, $f7 # CHECK: mov.s $f6, $f7 # encoding: [0x54,0xc7,0x00,0x7b] + msubf.d $f3, $f4, $f5 # CHECK: msubf.d $f3, $f4, $f5 # encoding: [0x54,0xa4,0x1b,0xf8] + msubf.s $f3, $f4, $f5 # CHECK: msubf.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x19,0xf8] + mtc0 $1, $2, 7 # CHECK: mtc0 $1, $2, 7 # encoding: [0x00,0x22,0x3a,0xfc] + mtc0 $5, $9 # CHECK: mtc0 $5, $9, 0 # encoding: [0x00,0xa9,0x02,0xfc] + mtc1 $3, $f4 # CHECK: mtc1 $3, $f4 # encoding: [0x54,0x64,0x28,0x3b] + mtc2 $5, $6 # CHECK: mtc2 $5, $6 # encoding: [0x00,0xa6,0x5d,0x3c] + mthc0 $7, $8 # CHECK: mthc0 $7, $8, 0 # encoding: [0x00,0xe8,0x02,0xf4] + mthc0 $9, $10, 1 # CHECK: mthc0 $9, $10, 1 # encoding: [0x01,0x2a,0x0a,0xf4] + mthc1 $11, $f12 # CHECK: mthc1 $11, $f12 # encoding: [0x55,0x6c,0x38,0x3b] + mthc2 $13, $14 # CHECK: mthc2 $13, $14 # encoding: [0x01,0xae,0x9d,0x3c] + muh $3, $4, $5 # CHECK muh $3, $4, $5 # encoding: [0x00,0xa4,0x18,0x58] + muhu $3, $4, $5 # CHECK muhu $3, $4, $5 # encoding: [0x00,0xa4,0x18,0xd8] + mul $3, $4, $5 # CHECK mul $3, $4, $5 # encoding: [0x00,0xa4,0x18,0x18] + mul.d $f2, $f4, $f6 # CHECK: mul.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0xb0] + mul.s $f3, $f4, $f5 # CHECK: mul.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0xb0] + mulu $3, $4, $5 # CHECK mulu $3, $4, $5 # encoding: [0x00,0xa4,0x18,0x98] + neg.d $f4, $f6 # CHECK: neg.d $f4, $f6 # encoding: [0x54,0x86,0x2b,0x7b] + neg.s $f6, $f7 # CHECK: neg.s $f6, $f7 # encoding: [0x54,0xc7,0x0b,0x7b] + nop # CHECK: nop # encoding: [0x00,0x00,0x00,0x00] + nor $3, $4, $5 # CHECK: nor $3, $4, $5 # encoding: [0x00,0xa4,0x1a,0xd0] + or $3, $4, $5 # CHECK: or $3, $4, $5 # encoding: [0x00,0xa4,0x1a,0x90] + ori $3, $4, 1234 # CHECK: ori $3, $4, 1234 # encoding: [0x50,0x64,0x04,0xd2] + pause # CHECK: pause # encoding: [0x00,0x00,0x28,0x00] + pref 1, 8($5) # CHECK: pref 1, 8($5) # encoding: [0x60,0x25,0x20,0x08] + prefe 1, 8($5) # CHECK: prefe 1, 8($5) # encoding: [0x60,0x25,0xa4,0x08] + rdhwr $5, $29 # CHECK: rdhwr $5, $29 # encoding: [0x00,0xbd,0x01,0xc0] + rdhwr $5, $29, 0 # CHECK: rdhwr $5, $29 # encoding: [0x00,0xbd,0x01,0xc0] + rdhwr $5, $29, 2 # CHECK: rdhwr $5, $29, 2 # encoding: [0x00,0xbd,0x11,0xc0] + rdpgpr $3, $9 # CHECK: $3, $9 # encoding: [0x00,0x69,0xe1,0x7c] + recip.d $f2, $f4 # CHECK: recip.d $f2, $f4 # encoding: [0x54,0x44,0x52,0x3b] + recip.s $f2, $f4 # CHECK: recip.s $f2, $f4 # encoding: [0x54,0x44,0x12,0x3b] + rint.d $f2, $f4 # CHECK: rint.d $f2, $f4 # encoding: [0x54,0x82,0x02,0x20] + rint.s $f2, $f4 # CHECK: rint.s $f2, $f4 # encoding: [0x54,0x82,0x00,0x20] + rotr $2, 7 # CHECK: rotr $2, $2, 7 # encoding: [0x00,0x42,0x38,0xc0] + rotr $9, $6, 7 # CHECK: rotr $9, $6, 7 # encoding: [0x01,0x26,0x38,0xc0] + rotrv $9, $6, $7 # CHECK: rotrv $9, $6, $7 # encoding: [0x00,0xc7,0x48,0xd0] + round.l.d $f2, $f4 # CHECK: round.l.d $f2, $f4 # encoding: [0x54,0x44,0x73,0x3b] + round.l.s $f2, $f4 # CHECK: round.l.s $f2, $f4 # encoding: [0x54,0x44,0x33,0x3b] + round.w.d $f2, $f4 # CHECK: round.w.d $f2, $f4 # encoding: [0x54,0x44,0x7b,0x3b] + round.w.s $f2, $f4 # CHECK: round.w.s $f2, $f4 # encoding: [0x54,0x44,0x3b,0x3b] + rsqrt.d $f2, $f4 # CHECK: rsqrt.d $f2, $f4 # encoding: [0x54,0x44,0x42,0x3b] + rsqrt.s $f3, $f5 # CHECK: rsqrt.s $f3, $f5 # encoding: [0x54,0x65,0x02,0x3b] + sb $4, 6($5) # CHECK: sb $4, 6($5) # encoding: [0x18,0x85,0x00,0x06] + sbe $4, 6($5) # CHECK: sbe $4, 6($5) # encoding: [0x60,0x85,0xa8,0x06] + sc $2, 8($4) # CHECK: sc $2, 8($4) # encoding: [0x60,0x44,0xb0,0x08] + sce $4, 6($5) # CHECK: sce $4, 6($5) # encoding: [0x60,0x85,0xac,0x06] + sdbbp # CHECK: sdbbp # encoding: [0x00,0x00,0xdb,0x7c] + sdbbp 34 # CHECK: sdbbp 34 # encoding: [0x00,0x22,0xdb,0x7c] + seb $3, $4 # CHECK: seb $3, $4 # encoding: [0x00,0x64,0x2b,0x3c] + seh $3, $4 # CHECK: seh $3, $4 # encoding: [0x00,0x64,0x3b,0x3c] + sel.d $f0, $f2, $f4 # CHECK: sel.d $f0, $f2, $f4 # encoding: [0x54,0x82,0x02,0xb8] + sel.s $f1, $f1, $f2 # CHECK: sel.s $f1, $f1, $f2 # encoding: [0x54,0x41,0x08,0xb8] + seleqz $2,$3,$4 # CHECK: seleqz $2, $3, $4 # encoding: [0x00,0x83,0x11,0x40] + seleqz.d $f2, $f4, $f8 # CHECK: seleqz.d $f2, $f4, $f8 # encoding: [0x55,0x04,0x12,0x38] + seleqz.s $f1, $f2, $f3 # CHECK: seleqz.s $f1, $f2, $f3 # encoding: [0x54,0x62,0x08,0x38] + selnez $2,$3,$4 # CHECK: selnez $2, $3, $4 # encoding: [0x00,0x83,0x11,0x80] + selnez.d $f2, $f4, $f8 # CHECK: selnez.d $f2, $f4, $f8 # encoding: [0x55,0x04,0x12,0x78] + selnez.s $f1, $f2, $f3 # CHECK: selnez.s $f1, $f2, $f3 # encoding: [0x54,0x62,0x08,0x78] + sh $4, 6($5) # CHECK: sh $4, 6($5) # encoding: [0x38,0x85,0x00,0x06] + she $4, 6($5) # CHECK: she $4, 6($5) # encoding: [0x60,0x85,0xaa,0x06] + sll $4, $3, 7 # CHECK: sll $4, $3, 7 # encoding: [0x00,0x83,0x38,0x00] + sqrt.d $f2, $f4 # CHECK: sqrt.d $f2, $f4 # encoding: [0x54,0x44,0x4a,0x3b] + sqrt.s $f3, $f5 # CHECK: sqrt.s $f3, $f5 # encoding: [0x54,0x65,0x0a,0x3b] + ssnop # CHECK: ssnop # encoding: [0x00,0x00,0x08,0x00] + sub $3, $4, $5 # CHECK: sub $3, $4, $5 # encoding: [0x00,0xa4,0x19,0x90] + sub.d $f2, $f4, $f6 # CHECK: sub.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0x70] + sub.s $f3, $f4, $f5 # CHECK: sub.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0x70] + subu $3, $4, $5 # CHECK: subu $3, $4, $5 # encoding: [0x00,0xa4,0x19,0xd0] + sw $4, 128($sp) # CHECK: sw $4, 128($sp) # encoding: [0xf8,0x9d,0x00,0x80] + sw $5, 4($6) # CHECK: sw $5, 4($6) # encoding: [0xf8,0xa6,0x00,0x04] + swe $5, 8($4) # CHECK: swe $5, 8($4) # encoding: [0x60,0xa4,0xae,0x08] + swm32 $16, $17, 8($4) # CHECK: swm32 $16, $17, 8($4) # encoding: [0x20,0x44,0xd0,0x08] + swm32 $16, $17, 8($sp) # CHECK: swm32 $16, $17, 8($sp) # encoding: [0x20,0x5d,0xd0,0x08] + swm32 $16, $17, $ra, 8($4) # CHECK: swm32 $16, $17, $ra, 8($4) # encoding: [0x22,0x44,0xd0,0x08] + swm32 $16, $17, $ra, 64($sp) # CHECK: swm32 $16, $17, $ra, 64($sp) # encoding: [0x22,0x5d,0xd0,0x40] + swm32 $16, $17, $18, $19, 8($4) # CHECK: swm32 $16, $17, $18, $19, 8($4) # encoding: [0x20,0x84,0xd0,0x08] + sync # CHECK: sync # encoding: [0x00,0x00,0x6b,0x7c] + sync 17 # CHECK: sync 17 # encoding: [0x00,0x11,0x6b,0x7c] + synci 8($5) # CHECK: synci 8($5) # encoding: [0x41,0x85,0x00,0x08] + syscall # CHECK: syscall # encoding: [0x00,0x00,0x8b,0x7c] + syscall 396 # CHECK: syscall 396 # encoding: [0x01,0x8c,0x8b,0x7c] + teq $8, $9 # CHECK: teq $8, $9 # encoding: [0x01,0x28,0x00,0x3c] + teq $5, $7, 15 # CHECK: teq $5, $7, 15 # encoding: [0x00,0xe5,0xf0,0x3c] + tge $7, $10 # CHECK: tge $7, $10 # encoding: [0x01,0x47,0x02,0x3c] + tge $7, $19, 15 # CHECK: tge $7, $19, 15 # encoding: [0x02,0x67,0xf2,0x3c] + tgeu $22, $gp # CHECK: tgeu $22, $gp # encoding: [0x03,0x96,0x04,0x3c] + tgeu $20, $14, 15 # CHECK: tgeu $20, $14, 15 # encoding: [0x01,0xd4,0xf4,0x3c] + tlbinv # CHECK: tlbinv # encoding: [0x00,0x00,0x43,0x7c] + tlbinvf # CHECK: tlbinvf # encoding: [0x00,0x00,0x53,0x7c] + tlt $15, $13 # CHECK: tlt $15, $13 # encoding: [0x01,0xaf,0x08,0x3c] + tlt $2, $19, 15 # CHECK: tlt $2, $19, 15 # encoding: [0x02,0x62,0xf8,0x3c] + tltu $11, $16 # CHECK: tltu $11, $16 # encoding: [0x02,0x0b,0x0a,0x3c] + tltu $16, $sp, 15 # CHECK: tltu $16, $sp, 15 # encoding: [0x03,0xb0,0xfa,0x3c] + tne $6, $17 # CHECK: tne $6, $17 # encoding: [0x02,0x26,0x0c,0x3c] + tne $7, $8, 15 # CHECK: tne $7, $8, 15 # encoding: [0x01,0x07,0xfc,0x3c] + trunc.l.d $f2, $f4 # CHECK: trunc.l.d $f2, $f4 # encoding: [0x54,0x44,0x63,0x3b] + trunc.l.s $f3, $f5 # CHECK: trunc.l.s $f3, $f5 # encoding: [0x54,0x65,0x23,0x3b] + trunc.w.d $f2, $f4 # CHECK: trunc.w.d $f2, $f4 # encoding: [0x54,0x44,0x6b,0x3b] + trunc.w.s $f3, $f5 # CHECK: trunc.w.s $f3, $f5 # encoding: [0x54,0x65,0x2b,0x3b] + wait # CHECK: wait # encoding: [0x00,0x00,0x93,0x7c] + wait 17 # CHECK: wait 17 # encoding: [0x00,0x11,0x93,0x7c] + wrpgpr $3, $4 # CHECK: wrpgpr $3, $4 # encoding: [0x00,0x64,0xf1,0x7c] + wsbh $3, $4 # CHECK: wsbh $3, $4 # encoding: [0x00,0x64,0x7b,0x3c] + xor $3, $4, $5 # CHECK: xor $3, $4, $5 # encoding: [0x00,0xa4,0x1b,0x10] + xori $3, $4, 1234 # CHECK: xori $3, $4, 1234 # encoding: [0x70,0x64,0x04,0xd2] Index: test/MC/Mips/micromips64r6/invalid-wrong-error.s =================================================================== --- test/MC/Mips/micromips64r6/invalid-wrong-error.s +++ test/MC/Mips/micromips64r6/invalid-wrong-error.s @@ -27,3 +27,6 @@ tne $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled dins $2, $3, -1, 1 # CHECK: :[[@LINE]]:16: error: expected 6-bit unsigned immediate dins $2, $3, 32, 1 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled + syscall -1 # CHECK: :[[@LINE]]:11: error: expected 20-bit unsigned immediate + syscall $4 # CHECK: :[[@LINE]]:11: error: expected 20-bit unsigned immediate + syscall 1024 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled Index: test/MC/Mips/micromips64r6/invalid.s =================================================================== --- test/MC/Mips/micromips64r6/invalid.s +++ test/MC/Mips/micromips64r6/invalid.s @@ -1,50 +1,68 @@ # RUN: not llvm-mc %s -triple=mips -show-encoding -mcpu=mips64r6 -mattr=micromips 2>%t1 # RUN: FileCheck %s < %t1 - addiur1sp $7, 260 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4 addiur1sp $7, 241 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4 + addiur1sp $7, 260 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4 addiur1sp $8, 240 # CHECK: :[[@LINE]]:13: error: invalid operand for instruction - addiur2 $9, $7, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction addiur2 $6, $7, 10 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + addiur2 $9, $7, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction addius5 $2, -9 # CHECK: :[[@LINE]]:15: error: expected 4-bit signed immediate addius5 $2, 8 # CHECK: :[[@LINE]]:15: error: expected 4-bit signed immediate addiusp 1032 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range align $4, $2, $3, -1 # CHECK: :[[@LINE]]:21: error: expected 2-bit unsigned immediate align $4, $2, $3, 4 # CHECK: :[[@LINE]]:21: error: expected 2-bit unsigned immediate - beqzc16 $9, 20 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction beqzc16 $6, 31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address beqzc16 $6, 130 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range - bnezc16 $9, 20 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + beqzc16 $9, 20 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction bnezc16 $6, 31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address bnezc16 $6, 130 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range + bnezc16 $9, 20 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction cache -1, 255($7) # CHECK: :[[@LINE]]:9: error: expected 5-bit unsigned immediate cache 32, 255($7) # CHECK: :[[@LINE]]:9: error: expected 5-bit unsigned immediate + dalign $4, $2, $3, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate + dalign $4, $2, $3, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate + ddiv $3, $4, $35 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + ddiv $3, $34, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + ddiv $32, $4, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + ddivu $3, $4, $35 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + ddivu $3, $34, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + ddivu $32, $4, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction # FIXME: Check various 'pos + size' constraints on dext* dext $2, $3, -1, 1 # CHECK: :[[@LINE]]:16: error: expected 6-bit unsigned immediate - dext $2, $3, 64, 1 # CHECK: :[[@LINE]]:16: error: expected 6-bit unsigned immediate dext $2, $3, 1, 0 # CHECK: :[[@LINE]]:19: error: expected immediate in range 1 .. 32 dext $2, $3, 1, 33 # CHECK: :[[@LINE]]:19: error: expected immediate in range 1 .. 32 + dext $2, $3, 64, 1 # CHECK: :[[@LINE]]:16: error: expected 6-bit unsigned immediate dextm $2, $3, -1, 1 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate - dextm $2, $3, 32, 1 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate dextm $2, $3, -1, 33 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate - dextm $2, $3, 32, 33 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate dextm $2, $3, 1, 32 # CHECK: :[[@LINE]]:20: error: expected immediate in range 33 .. 64 dextm $2, $3, 1, 65 # CHECK: :[[@LINE]]:20: error: expected immediate in range 33 .. 64 + dextm $2, $3, 32, 1 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate + dextm $2, $3, 32, 33 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate dextu $2, $3, 31, 1 # CHECK: :[[@LINE]]:17: error: expected immediate in range 32 .. 63 - dextu $2, $3, 64, 1 # CHECK: :[[@LINE]]:17: error: expected immediate in range 32 .. 63 dextu $2, $3, 32, 0 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 32 dextu $2, $3, 32, 33 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 32 - dins $2, $3, 31, 33 # CHECK: :[[@LINE]]:20: error: expected immediate in range 1 .. 32 + dextu $2, $3, 64, 1 # CHECK: :[[@LINE]]:17: error: expected immediate in range 32 .. 63 dins $2, $3, 31, 0 # CHECK: :[[@LINE]]:20: error: expected immediate in range 1 .. 32 + dins $2, $3, 31, 33 # CHECK: :[[@LINE]]:20: error: expected immediate in range 1 .. 32 # FIXME: Check '32 <= pos + size <= 64' constraint on dinsm dinsm $2, $3, -1, 1 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate - dinsm $2, $3, 32, 1 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate dinsm $2, $3, 31, 0 # CHECK: :[[@LINE]]:21: error: expected immediate in range 2 .. 64 - dinsm $2, $3, 31, 65 # CHECK: :[[@LINE]]:21: error: expected immediate in range 2 .. 64 dinsu $2, $3, 31, 1 # CHECK: :[[@LINE]]:17: error: expected immediate in range 32 .. 63 - dinsu $2, $3, 64, 1 # CHECK: :[[@LINE]]:17: error: expected immediate in range 32 .. 63 - dinsu $2, $3, 63, 0 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 32 + dinsm $2, $3, 31, 65 # CHECK: :[[@LINE]]:21: error: expected immediate in range 2 .. 64 dinsu $2, $3, 32, 33 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 32 + dinsm $2, $3, 32, 1 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate + dinsu $2, $3, 63, 0 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 32 + dinsu $2, $3, 64, 1 # CHECK: :[[@LINE]]:17: error: expected immediate in range 32 .. 63 + dmfc0 $4, $3, -1 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate + dmfc0 $4, $3, 8 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate + dmod $3, $4, $35 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + dmod $3, $34, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + dmod $32, $4, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + dmodu $3, $4, $35 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + dmodu $3, $34, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + dmodu $32, $4, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + dmtc0 $4, $3, -1 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate + dmtc0 $4, $3, 8 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate # FIXME: Check '0 < pos + size <= 32' constraint on ext ext $2, $3, -1, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate ext $2, $3, 32, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate @@ -52,97 +70,92 @@ ext $2, $3, 1, 33 # CHECK: :[[@LINE]]:18: error: expected immediate in range 1 .. 32 ins $2, $3, -1, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate ins $2, $3, 32, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate - dalign $4, $2, $3, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate - dalign $4, $2, $3, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate - lbu16 $9, 8($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lbu16 $3, -2($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + jrcaddiusp 1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 10 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 18 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 33 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 125 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 128 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 + jrcaddiusp 132 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 lbu16 $3, -2($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + lbu16 $9, 8($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction lbu16 $16, 8($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lhu16 $9, 4($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lhu16 $3, 64($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range lhu16 $3, 64($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + lhu16 $9, 4($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction lhu16 $16, 4($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction li16 $4, -2 # CHECK: :[[@LINE]]:12: error: expected immediate in range -1 .. 126 li16 $4, 127 # CHECK: :[[@LINE]]:12: error: expected immediate in range -1 .. 126 lsa $4, $2, $3, 0 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 4 lsa $4, $2, $3, 5 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 4 - lw16 $9, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lw16 $4, 68($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range lw16 $4, 68($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + lw16 $9, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction lw16 $17, 8($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - ddiv $32, $4, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - ddiv $3, $34, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - ddiv $3, $4, $35 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - dmod $32, $4, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - dmod $3, $34, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - dmod $3, $4, $35 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - ddivu $32, $4, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - ddivu $3, $34, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - ddivu $3, $4, $35 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - dmodu $32, $4, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - dmodu $3, $34, $5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - dmodu $3, $4, $35 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + lwm16 $5, $6, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected + lwm16 $16, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + lwm16 $16, $17, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + lwm16 $16, $17, $ra, 8($fp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + lwm16 $16, $17, $ra, 64($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + lwm16 $16, $19, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected + lwm16 $16-$25, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand + lwm16 $16-$20, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + lwm32 $5, $6, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected + lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $24, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand + lwm32 $16, $19, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected + lwm32 $16-$25, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand + movep $5, $6, $2, $9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + movep $5, $6, $5, $3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + movep $5, $21, $2, $3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + movep $8, $6, $2, $3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + mtc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate + mtc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate + mthc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate + mthc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate pref -1, 255($7) # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate pref 32, 255($7) # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate - teq $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + rotr $2, -1 # CHECK: :[[@LINE]]:12: error: expected 5-bit unsigned immediate + rotr $2, 32 # CHECK: :[[@LINE]]:12: error: expected 5-bit unsigned immediate + rotr $2, $3, -1 # CHECK: :[[@LINE]]:16: error: expected 5-bit unsigned immediate + rotr $2, $3, 32 # CHECK: :[[@LINE]]:16: error: expected 5-bit unsigned immediate + rotrv $9, $6, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sb16 $3, 64($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + sb16 $7, 4($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sb16 $9, 4($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sb16 $16, 4($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sh16 $4, 68($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + sh16 $7, 8($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sh16 $9, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sh16 $16, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sw16 $4, 64($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range + sw16 $7, 4($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sw16 $9, 4($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + sw16 $16, 4($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + swm16 $5, $6, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected + swm16 $16, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + swm16 $16, $17, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + swm16 $16, $17, $ra, 8($fp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + swm16 $16, $17, $ra, 64($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + swm16 $16, $19, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected + swm16 $16-$20, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + swm16 $16-$25, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand + swm32 $5, $6, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected + swm32 $16, $19, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected + swm32 $16-$25, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand teq $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - tge $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + teq $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction tge $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + tge $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction tgeu $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction tgeu $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - tlt $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction tlt $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - tltu $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + tlt $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction tltu $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - tne $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + tltu $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction tne $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - wrpgpr $34, $4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + tne $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction wrpgpr $3, $33 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - wsbh $34, $4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction + wrpgpr $34, $4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction wsbh $3, $33 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - jrcaddiusp 1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 10 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 18 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 33 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 125 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 128 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - jrcaddiusp 132 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4 - lwm16 $5, $6, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected - lwm16 $16, $19, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected - lwm16 $16-$25, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand - lwm16 $16, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lwm16 $16, $17, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lwm16 $16-$20, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lwm16 $16, $17, $ra, 8($fp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - lwm16 $16, $17, $ra, 64($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sb16 $9, 4($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sb16 $3, 64($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range - sb16 $16, 4($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sb16 $7, 4($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sh16 $9, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sh16 $4, 68($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range - sh16 $16, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sh16 $7, 8($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sw16 $9, 4($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sw16 $4, 64($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range - sw16 $16, 4($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - sw16 $7, 4($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - swm16 $5, $6, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected - swm16 $16, $19, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected - swm16 $16-$25, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand - swm16 $16, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - swm16 $16, $17, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - swm16 $16-$20, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - swm16 $16, $17, $ra, 8($fp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - swm16 $16, $17, $ra, 64($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction - mtc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate - mtc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate - mthc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate - mthc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate - dmtc0 $4, $3, -1 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate - dmtc0 $4, $3, 8 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate - dmfc0 $4, $3, -1 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate - dmfc0 $4, $3, 8 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate + wsbh $34, $4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction Index: test/MC/Mips/micromips64r6/valid.s =================================================================== --- test/MC/Mips/micromips64r6/valid.s +++ test/MC/Mips/micromips64r6/valid.s @@ -5,198 +5,220 @@ addiur2 $6, $7, -1 # CHECK: addiur2 $6, $7, -1 # encoding: [0x6f,0x7e] addiur2 $6, $7, 12 # CHECK: addiur2 $6, $7, 12 # encoding: [0x6f,0x76] addius5 $7, -2 # CHECK: addius5 $7, -2 # encoding: [0x4c,0xfc] + addiusp -16 # CHECK: addiusp -16 # encoding: [0x4f,0xf9] addiusp -1028 # CHECK: addiusp -1028 # encoding: [0x4f,0xff] addiusp -1032 # CHECK: addiusp -1032 # encoding: [0x4f,0xfd] addiusp 1024 # CHECK: addiusp 1024 # encoding: [0x4c,0x01] addiusp 1028 # CHECK: addiusp 1028 # encoding: [0x4c,0x03] - addiusp -16 # CHECK: addiusp -16 # encoding: [0x4f,0xf9] b 132 # CHECK: bc16 132 # encoding: [0xcc,0x42] bc16 132 # CHECK: bc16 132 # encoding: [0xcc,0x42] beqzc16 $6, 20 # CHECK: beqzc16 $6, 20 # encoding: [0x8f,0x0a] bnezc16 $6, 20 # CHECK: bnezc16 $6, 20 # encoding: [0xaf,0x0a] - daui $3, $4, 5 # CHECK: daui $3, $4, 5 # encoding: [0xf0,0x64,0x00,0x05] - dahi $3, 4 # CHECK: dahi $3, 4 # encoding: [0x42,0x23,0x00,0x04] - dati $3, 4 # CHECK: dati $3, 4 # encoding: [0x42,0x03,0x00,0x04] - dext $9, $6, 3, 7 # CHECK: dext $9, $6, 3, 7 # encoding: [0x59,0x26,0x30,0xec] - dextm $9, $6, 3, 39 # CHECK: dextm $9, $6, 3, 39 # encoding: [0x59,0x26,0x30,0xe4] - dextu $9, $6, 35, 7 # CHECK: dextu $9, $6, 35, 7 # encoding: [0x59,0x26,0x30,0xd4] - dalign $4, $2, $3, 5 # CHECK: dalign $4, $2, $3, 5 # encoding: [0x58,0x43,0x25,0x1c] - lw $3, 32($gp) # CHECK: lw $3, 32($gp) # encoding: [0x65,0x88] - lw $3, 24($sp) # CHECK: lw $3, 24($sp) # encoding: [0x48,0x66] - lw16 $4, 8($17) # CHECK: lw16 $4, 8($17) # encoding: [0x6a,0x12] - lhu16 $3, 4($16) # CHECK: lhu16 $3, 4($16) # encoding: [0x29,0x82] - lbu16 $3, 4($17) # CHECK: lbu16 $3, 4($17) # encoding: [0x09,0x94] - lbu16 $3, -1($17) # CHECK: lbu16 $3, -1($17) # encoding: [0x09,0x9f] - ddiv $3, $4, $5 # CHECK: ddiv $3, $4, $5 # encoding: [0x58,0xa4,0x19,0x18] - dmod $3, $4, $5 # CHECK: dmod $3, $4, $5 # encoding: [0x58,0xa4,0x19,0x58] - ddivu $3, $4, $5 # CHECK: ddivu $3, $4, $5 # encoding: [0x58,0xa4,0x19,0x98] - dmodu $3, $4, $5 # CHECK: dmodu $3, $4, $5 # encoding: [0x58,0xa4,0x19,0xd8] - add.s $f3, $f4, $f5 # CHECK: add.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0x30] - add.d $f2, $f4, $f6 # CHECK: add.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0x30] - sub.s $f3, $f4, $f5 # CHECK: sub.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0x70] - sub.d $f2, $f4, $f6 # CHECK: sub.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0x70] - mul.s $f3, $f4, $f5 # CHECK: mul.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0xb0] - mul.d $f2, $f4, $f6 # CHECK: mul.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0xb0] - div.s $f3, $f4, $f5 # CHECK: div.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0xf0] - div.d $f2, $f4, $f6 # CHECK: div.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0xf0] - maddf.s $f3, $f4, $f5 # CHECK: maddf.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x19,0xb8] - maddf.d $f3, $f4, $f5 # CHECK: maddf.d $f3, $f4, $f5 # encoding: [0x54,0xa4,0x1b,0xb8] - msubf.s $f3, $f4, $f5 # CHECK: msubf.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x19,0xf8] - msubf.d $f3, $f4, $f5 # CHECK: msubf.d $f3, $f4, $f5 # encoding: [0x54,0xa4,0x1b,0xf8] - mov.s $f6, $f7 # CHECK: mov.s $f6, $f7 # encoding: [0x54,0xc7,0x00,0x7b] - mov.d $f4, $f6 # CHECK: mov.d $f4, $f6 # encoding: [0x54,0x86,0x20,0x7b] - neg.s $f6, $f7 # CHECK: neg.s $f6, $f7 # encoding: [0x54,0xc7,0x0b,0x7b] - neg.d $f4, $f6 # CHECK: neg.d $f4, $f6 # encoding: [0x54,0x86,0x2b,0x7b] - max.s $f5, $f4, $f3 # CHECK: max.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x0b] - max.d $f5, $f4, $f3 # CHECK: max.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x0b] - maxa.s $f5, $f4, $f3 # CHECK: maxa.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x2b] - maxa.d $f5, $f4, $f3 # CHECK: maxa.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x2b] - min.s $f5, $f4, $f3 # CHECK: min.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x03] - min.d $f5, $f4, $f3 # CHECK: min.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x03] - mina.s $f5, $f4, $f3 # CHECK: mina.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x23] - mina.d $f5, $f4, $f3 # CHECK: mina.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x23] - cmp.af.s $f2, $f3, $f4 # CHECK: cmp.af.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x05] - cmp.af.d $f2, $f3, $f4 # CHECK: cmp.af.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x15] - cmp.un.s $f2, $f3, $f4 # CHECK: cmp.un.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x45] - cmp.un.d $f2, $f3, $f4 # CHECK: cmp.un.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x55] - cmp.eq.s $f2, $f3, $f4 # CHECK: cmp.eq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x85] - cmp.eq.d $f2, $f3, $f4 # CHECK: cmp.eq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x95] - cmp.ueq.s $f2, $f3, $f4 # CHECK: cmp.ueq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0xc5] - cmp.ueq.d $f2, $f3, $f4 # CHECK: cmp.ueq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0xd5] - cmp.lt.s $f2, $f3, $f4 # CHECK: cmp.lt.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x05] - cmp.lt.d $f2, $f3, $f4 # CHECK: cmp.lt.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x15] - cmp.ult.s $f2, $f3, $f4 # CHECK: cmp.ult.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x45] - cmp.ult.d $f2, $f3, $f4 # CHECK: cmp.ult.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x55] - cmp.le.s $f2, $f3, $f4 # CHECK: cmp.le.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x85] - cmp.le.d $f2, $f3, $f4 # CHECK: cmp.le.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x95] - cmp.ule.s $f2, $f3, $f4 # CHECK: cmp.ule.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0xc5] - cmp.ule.d $f2, $f3, $f4 # CHECK: cmp.ule.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0xd5] - cmp.saf.s $f2, $f3, $f4 # CHECK: cmp.saf.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x05] - cmp.saf.d $f2, $f3, $f4 # CHECK: cmp.saf.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x15] - cmp.sun.s $f2, $f3, $f4 # CHECK: cmp.sun.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x45] - cmp.sun.d $f2, $f3, $f4 # CHECK: cmp.sun.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x55] - cmp.seq.s $f2, $f3, $f4 # CHECK: cmp.seq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x85] - cmp.seq.d $f2, $f3, $f4 # CHECK: cmp.seq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x95] - cmp.sueq.s $f2, $f3, $f4 # CHECK: cmp.sueq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0xc5] - cmp.sueq.d $f2, $f3, $f4 # CHECK: cmp.sueq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0xd5] - cmp.slt.s $f2, $f3, $f4 # CHECK: cmp.slt.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x05] - cmp.slt.d $f2, $f3, $f4 # CHECK: cmp.slt.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x15] - cmp.sult.s $f2, $f3, $f4 # CHECK: cmp.sult.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x45] - cmp.sult.d $f2, $f3, $f4 # CHECK: cmp.sult.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x55] - cmp.sle.s $f2, $f3, $f4 # CHECK: cmp.sle.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x85] - cmp.sle.d $f2, $f3, $f4 # CHECK: cmp.sle.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x95] - cmp.sule.s $f2, $f3, $f4 # CHECK: cmp.sule.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0xc5] - cmp.sule.d $f2, $f3, $f4 # CHECK: cmp.sule.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0xd5] - cvt.l.s $f3, $f4 # CHECK: cvt.l.s $f3, $f4 # encoding: [0x54,0x64,0x01,0x3b] - cvt.l.d $f3, $f4 # CHECK: cvt.l.d $f3, $f4 # encoding: [0x54,0x64,0x41,0x3b] - cvt.w.s $f3, $f4 # CHECK: cvt.w.s $f3, $f4 # encoding: [0x54,0x64,0x09,0x3b] - cvt.w.d $f3, $f4 # CHECK: cvt.w.d $f3, $f4 # encoding: [0x54,0x64,0x49,0x3b] - cvt.d.s $f2, $f4 # CHECK: cvt.d.s $f2, $f4 # encoding: [0x54,0x44,0x13,0x7b] - cvt.d.w $f2, $f4 # CHECK: cvt.d.w $f2, $f4 # encoding: [0x54,0x44,0x33,0x7b] - cvt.d.l $f2, $f4 # CHECK: cvt.d.l $f2, $f4 # encoding: [0x54,0x44,0x53,0x7b] - cvt.s.d $f2, $f4 # CHECK: cvt.s.d $f2, $f4 # encoding: [0x54,0x44,0x1b,0x7b] - cvt.s.w $f3, $f4 # CHECK: cvt.s.w $f3, $f4 # encoding: [0x54,0x64,0x3b,0x7b] - cvt.s.l $f3, $f4 # CHECK: cvt.s.l $f3, $f4 # encoding: [0x54,0x64,0x5b,0x7b] - teq $8, $9 # CHECK: teq $8, $9 # encoding: [0x01,0x28,0x00,0x3c] - teq $5, $7, 15 # CHECK: teq $5, $7, 15 # encoding: [0x00,0xe5,0xf0,0x3c] - tge $7, $10 # CHECK: tge $7, $10 # encoding: [0x01,0x47,0x02,0x3c] - tge $7, $19, 15 # CHECK: tge $7, $19, 15 # encoding: [0x02,0x67,0xf2,0x3c] - tgeu $22, $gp # CHECK: tgeu $22, $gp # encoding: [0x03,0x96,0x04,0x3c] - tgeu $20, $14, 15 # CHECK: tgeu $20, $14, 15 # encoding: [0x01,0xd4,0xf4,0x3c] - tlt $15, $13 # CHECK: tlt $15, $13 # encoding: [0x01,0xaf,0x08,0x3c] - tlt $2, $19, 15 # CHECK: tlt $2, $19, 15 # encoding: [0x02,0x62,0xf8,0x3c] - tltu $11, $16 # CHECK: tltu $11, $16 # encoding: [0x02,0x0b,0x0a,0x3c] - tltu $16, $sp, 15 # CHECK: tltu $16, $sp, 15 # encoding: [0x03,0xb0,0xfa,0x3c] - tne $6, $17 # CHECK: tne $6, $17 # encoding: [0x02,0x26,0x0c,0x3c] - tne $7, $8, 15 # CHECK: tne $7, $8, 15 # encoding: [0x01,0x07,0xfc,0x3c] - cachee 1, 8($5) # CHECK: cachee 1, 8($5) # encoding: [0x60,0x25,0xa6,0x08] - wrpgpr $3, $4 # CHECK: wrpgpr $3, $4 # encoding: [0x00,0x64,0xf1,0x7c] - wsbh $3, $4 # CHECK: wsbh $3, $4 # encoding: [0x00,0x64,0x7b,0x3c] + break16 8 # CHECK: break16 8 # encoding: [0x46,0x1b] jalr $9 # CHECK: jalr $9 # encoding: [0x45,0x2b] jrc16 $9 # CHECK: jrc16 $9 # encoding: [0x45,0x23] jrcaddiusp 20 # CHECK: jrcaddiusp 20 # encoding: [0x44,0xb3] - break16 8 # CHECK: break16 8 # encoding: [0x46,0x1b] - li16 $3, -1 # CHECK: li16 $3, -1 # encoding: [0xed,0xff] - move16 $3, $5 # CHECK: move16 $3, $5 # encoding: [0x0c,0x65] - sdbbp16 8 # CHECK: sdbbp16 8 # encoding: [0x46,0x3b] - subu16 $5, $16, $3 # CHECK: subu16 $5, $16, $3 # encoding: [0x04,0x3b] - xor16 $17, $5 # CHECK: xor16 $17, $5 # encoding: [0x44,0xd8] + lbu16 $3, 4($17) # CHECK: lbu16 $3, 4($17) # encoding: [0x09,0x94] + lbu16 $3, -1($17) # CHECK: lbu16 $3, -1($17) # encoding: [0x09,0x9f] + lhu16 $3, 4($16) # CHECK: lhu16 $3, 4($16) # encoding: [0x29,0x82] + li16 $3, -1 # CHECK: li16 $3, -1 # encoding: [0xed,0xff] + lw $3, 32($gp) # CHECK: lw $3, 32($gp) # encoding: [0x65,0x88] + lw $3, 24($sp) # CHECK: lw $3, 24($sp) # encoding: [0x48,0x66] + lw16 $4, 8($17) # CHECK: lw16 $4, 8($17) # encoding: [0x6a,0x12] lwm $16, $17, $ra, 8($sp) # CHECK: lwm16 $16, $17, $ra, 8($sp) # encoding: [0x45,0x22] lwm16 $16, $17, $ra, 8($sp) # CHECK: lwm16 $16, $17, $ra, 8($sp) # encoding: [0x45,0x22] + move16 $3, $5 # CHECK: move16 $3, $5 # encoding: [0x0c,0x65] + movep $5, $6, $2, $3 # CHECK: movep $5, $6, $2, $3 # encoding: [0x84,0x34] sb16 $3, 4($16) # CHECK: sb16 $3, 4($16) # encoding: [0x89,0x84] + sdbbp16 8 # CHECK: sdbbp16 8 # encoding: [0x46,0x3b] sh16 $4, 8($17) # CHECK: sh16 $4, 8($17) # encoding: [0xaa,0x14] + subu16 $5, $16, $3 # CHECK: subu16 $5, $16, $3 # encoding: [0x04,0x3b] sw $4, 124($sp) # CHECK: sw $4, 124($sp) # encoding: [0xc8,0x9f] sw16 $4, 4($17) # CHECK: sw16 $4, 4($17) # encoding: [0xea,0x11] sw16 $0, 4($17) # CHECK: sw16 $zero, 4($17) # encoding: [0xe8,0x11] swm $16, $17, $ra, 8($sp) # CHECK: swm16 $16, $17, $ra, 8($sp) # encoding: [0x45,0x2a] swm16 $16, $17, $ra, 8($sp) # CHECK: swm16 $16, $17, $ra, 8($sp) # encoding: [0x45,0x2a] - recip.s $f2, $f4 # CHECK: recip.s $f2, $f4 # encoding: [0x54,0x44,0x12,0x3b] - recip.d $f2, $f4 # CHECK: recip.d $f2, $f4 # encoding: [0x54,0x44,0x52,0x3b] - rint.s $f2, $f4 # CHECK: rint.s $f2, $f4 # encoding: [0x54,0x82,0x00,0x20] - rint.d $f2, $f4 # CHECK: rint.d $f2, $f4 # encoding: [0x54,0x82,0x02,0x20] - round.l.s $f2, $f4 # CHECK: round.l.s $f2, $f4 # encoding: [0x54,0x44,0x33,0x3b] - round.l.d $f2, $f4 # CHECK: round.l.d $f2, $f4 # encoding: [0x54,0x44,0x73,0x3b] - round.w.s $f2, $f4 # CHECK: round.w.s $f2, $f4 # encoding: [0x54,0x44,0x3b,0x3b] - round.w.d $f2, $f4 # CHECK: round.w.d $f2, $f4 # encoding: [0x54,0x44,0x7b,0x3b] - sel.s $f1, $f1, $f2 # CHECK: sel.s $f1, $f1, $f2 # encoding: [0x54,0x41,0x08,0xb8] - sel.d $f0, $f2, $f4 # CHECK: sel.d $f0, $f2, $f4 # encoding: [0x54,0x82,0x02,0xb8] - seleqz.s $f1, $f2, $f3 # CHECK: seleqz.s $f1, $f2, $f3 # encoding: [0x54,0x62,0x08,0x38] - seleqz.d $f2, $f4, $f8 # CHECK: seleqz.d $f2, $f4, $f8 # encoding: [0x55,0x04,0x12,0x38] - selnez.s $f1, $f2, $f3 # CHECK: selnez.s $f1, $f2, $f3 # encoding: [0x54,0x62,0x08,0x78] - selnez.d $f2, $f4, $f8 # CHECK: selnez.d $f2, $f4, $f8 # encoding: [0x55,0x04,0x12,0x78] - class.s $f2, $f3 # CHECK: class.s $f2, $f3 # encoding: [0x54,0x62,0x00,0x60] - class.d $f2, $f4 # CHECK: class.d $f2, $f4 # encoding: [0x54,0x82,0x02,0x60] - deret # CHECK: deret # encoding: [0x00,0x00,0xe3,0x7c] - di # CHECK: di # encoding: [0x00,0x00,0x47,0x7c] - di $0 # CHECK: di # encoding: [0x00,0x00,0x47,0x7c] - di $15 # CHECK: di $15 # encoding: [0x00,0x0f,0x47,0x7c] - ceil.l.s $f1, $f3 # CHECK: ceil.l.s $f1, $f3 # encoding: [0x54,0x23,0x13,0x3b] - ceil.l.d $f1, $f3 # CHECK: ceil.l.d $f1, $f3 # encoding: [0x54,0x23,0x53,0x3b] - floor.l.s $f1, $f3 # CHECK: floor.l.s $f1, $f3 # encoding: [0x54,0x23,0x03,0x3b] - floor.l.d $f1, $f3 # CHECK: floor.l.d $f1, $f3 # encoding: [0x54,0x23,0x43,0x3b] - tlbinv # CHECK: tlbinv # encoding: [0x00,0x00,0x43,0x7c] - tlbinvf # CHECK: tlbinvf # encoding: [0x00,0x00,0x53,0x7c] - dinsu $4, $2, 32, 5 # CHECK: dinsu $4, $2, 32, 5 # encoding: [0x58,0x82,0x20,0x34] - dinsm $4, $2, 3, 5 # CHECK: dinsm $4, $2, 3, 5 # encoding: [0x58,0x82,0x38,0xc4] - dins $4, $2, 3, 5 # CHECK: dins $4, $2, 3, 5 # encoding: [0x58,0x82,0x38,0xcc] - mtc0 $5, $9 # CHECK: mtc0 $5, $9, 0 # encoding: [0x00,0xa9,0x02,0xfc] + xor16 $17, $5 # CHECK: xor16 $17, $5 # encoding: [0x44,0xd8] + add.d $f2, $f4, $f6 # CHECK: add.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0x30] + add.s $f3, $f4, $f5 # CHECK: add.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0x30] + cachee 1, 8($5) # CHECK: cachee 1, 8($5) # encoding: [0x60,0x25,0xa6,0x08] + ceil.l.d $f1, $f3 # CHECK: ceil.l.d $f1, $f3 # encoding: [0x54,0x23,0x53,0x3b] + ceil.l.s $f1, $f3 # CHECK: ceil.l.s $f1, $f3 # encoding: [0x54,0x23,0x13,0x3b] + class.d $f2, $f4 # CHECK: class.d $f2, $f4 # encoding: [0x54,0x82,0x02,0x60] + class.s $f2, $f3 # CHECK: class.s $f2, $f3 # encoding: [0x54,0x62,0x00,0x60] + cmp.af.d $f2, $f3, $f4 # CHECK: cmp.af.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x15] + cmp.af.s $f2, $f3, $f4 # CHECK: cmp.af.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x05] + cmp.eq.d $f2, $f3, $f4 # CHECK: cmp.eq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x95] + cmp.eq.s $f2, $f3, $f4 # CHECK: cmp.eq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x85] + cmp.le.d $f2, $f3, $f4 # CHECK: cmp.le.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x95] + cmp.le.s $f2, $f3, $f4 # CHECK: cmp.le.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x85] + cmp.lt.d $f2, $f3, $f4 # CHECK: cmp.lt.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x15] + cmp.lt.s $f2, $f3, $f4 # CHECK: cmp.lt.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x05] + cmp.saf.d $f2, $f3, $f4 # CHECK: cmp.saf.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x15] + cmp.saf.s $f2, $f3, $f4 # CHECK: cmp.saf.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x05] + cmp.seq.d $f2, $f3, $f4 # CHECK: cmp.seq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x95] + cmp.seq.s $f2, $f3, $f4 # CHECK: cmp.seq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x85] + cmp.sle.d $f2, $f3, $f4 # CHECK: cmp.sle.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x95] + cmp.sle.s $f2, $f3, $f4 # CHECK: cmp.sle.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x85] + cmp.slt.d $f2, $f3, $f4 # CHECK: cmp.slt.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x15] + cmp.slt.s $f2, $f3, $f4 # CHECK: cmp.slt.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x05] + cmp.sueq.d $f2, $f3, $f4 # CHECK: cmp.sueq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0xd5] + cmp.sueq.s $f2, $f3, $f4 # CHECK: cmp.sueq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0xc5] + cmp.sule.d $f2, $f3, $f4 # CHECK: cmp.sule.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0xd5] + cmp.sule.s $f2, $f3, $f4 # CHECK: cmp.sule.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0xc5] + cmp.sult.d $f2, $f3, $f4 # CHECK: cmp.sult.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x55] + cmp.sult.s $f2, $f3, $f4 # CHECK: cmp.sult.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x13,0x45] + cmp.sun.d $f2, $f3, $f4 # CHECK: cmp.sun.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x55] + cmp.sun.s $f2, $f3, $f4 # CHECK: cmp.sun.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x12,0x45] + cmp.ueq.d $f2, $f3, $f4 # CHECK: cmp.ueq.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0xd5] + cmp.ueq.s $f2, $f3, $f4 # CHECK: cmp.ueq.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0xc5] + cmp.ule.d $f2, $f3, $f4 # CHECK: cmp.ule.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0xd5] + cmp.ule.s $f2, $f3, $f4 # CHECK: cmp.ule.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0xc5] + cmp.ult.d $f2, $f3, $f4 # CHECK: cmp.ult.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x55] + cmp.ult.s $f2, $f3, $f4 # CHECK: cmp.ult.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x11,0x45] + cmp.un.d $f2, $f3, $f4 # CHECK: cmp.un.d $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x55] + cmp.un.s $f2, $f3, $f4 # CHECK: cmp.un.s $f2, $f3, $f4 # encoding: [0x54,0x83,0x10,0x45] + cvt.d.l $f2, $f4 # CHECK: cvt.d.l $f2, $f4 # encoding: [0x54,0x44,0x53,0x7b] + cvt.d.s $f2, $f4 # CHECK: cvt.d.s $f2, $f4 # encoding: [0x54,0x44,0x13,0x7b] + cvt.d.w $f2, $f4 # CHECK: cvt.d.w $f2, $f4 # encoding: [0x54,0x44,0x33,0x7b] + cvt.l.d $f3, $f4 # CHECK: cvt.l.d $f3, $f4 # encoding: [0x54,0x64,0x41,0x3b] + cvt.l.s $f3, $f4 # CHECK: cvt.l.s $f3, $f4 # encoding: [0x54,0x64,0x01,0x3b] + cvt.s.d $f2, $f4 # CHECK: cvt.s.d $f2, $f4 # encoding: [0x54,0x44,0x1b,0x7b] + cvt.s.l $f3, $f4 # CHECK: cvt.s.l $f3, $f4 # encoding: [0x54,0x64,0x5b,0x7b] + cvt.s.w $f3, $f4 # CHECK: cvt.s.w $f3, $f4 # encoding: [0x54,0x64,0x3b,0x7b] + cvt.w.d $f3, $f4 # CHECK: cvt.w.d $f3, $f4 # encoding: [0x54,0x64,0x49,0x3b] + cvt.w.s $f3, $f4 # CHECK: cvt.w.s $f3, $f4 # encoding: [0x54,0x64,0x09,0x3b] + dadd $9, $6, $7 # CHECK: dadd $9, $6, $7 # encoding: [0x58,0xe6,0x49,0x10] + dadd $s3, $at, $ra # CHECK: dadd $19, $1, $ra # encoding: [0x5b,0xe1,0x99,0x10] + daddiu $9, -15001 # CHECK: daddiu $9, $9, -15001 # encoding: [0x5d,0x29,0xc5,0x67] + daddiu $9, $6, -15001 # CHECK: daddiu $9, $6, -15001 # encoding: [0x5d,0x26,0xc5,0x67] + daddiu $9, $3, 8 * 4 # CHECK: daddiu $9, $3, 32 # encoding: [0x5d,0x23,0x00,0x20] + daddiu $9, $3, (8 * 4) # CHECK: daddiu $9, $3, 32 # encoding: [0x5d,0x23,0x00,0x20] + daddiu $11, $26, 31949 # CHECK: daddiu $11, $26, 31949 # encoding: [0x5d,0x7a,0x7c,0xcd] + daddiu $14, $14, 4586 # CHECK: daddiu $14, $14, 4586 # encoding: [0x5d,0xce,0x11,0xea] + daddiu $15, $11, -5025 # CHECK: daddiu $15, $11, -5025 # encoding: [0x5d,0xeb,0xec,0x5f] + daddiu $19, $19, 26943 # CHECK: daddiu $19, $19, 26943 # encoding: [0x5e,0x73,0x69,0x3f] + daddiu $24, $2, 18079 # CHECK: daddiu $24, $2, 18079 # encoding: [0x5f,0x02,0x46,0x9f] + daddiu $k0, $s6, -4586 # CHECK: daddiu $26, $22, -4586 # encoding: [0x5f,0x56,0xee,0x16] + daddiu $sp, $sp, -32 # CHECK: daddiu $sp, $sp, -32 # encoding: [0x5f,0xbd,0xff,0xe0] + daddu $9, 10 # CHECK: daddiu $9, $9, 10 # encoding: [0x5d,0x29,0x00,0x0a] + daddu $9, $3 # CHECK: daddu $9, $9, $3 # encoding: [0x58,0x69,0x49,0x50] + daddu $9, $6, $7 # CHECK: daddu $9, $6, $7 # encoding: [0x58,0xe6,0x49,0x50] + daddu $9, $6, -15001 # CHECK: daddiu $9, $6, -15001 # encoding: [0x5d,0x26,0xc5,0x67] + daddu $19, 26943 # CHECK: daddiu $19, $19, 26943 # encoding: [0x5e,0x73,0x69,0x3f] + daddu $19, $1, $ra # CHECK: daddu $19, $1, $ra # encoding: [0x5b,0xe1,0x99,0x50] + daddu $24, $2, 18079 # CHECK: daddiu $24, $2, 18079 # encoding: [0x5f,0x02,0x46,0x9f] + daddu $26, $1, $11 # CHECK: daddu $26, $1, $11 # encoding: [0x59,0x61,0xd1,0x50] + dahi $3, 4 # CHECK: dahi $3, 4 # encoding: [0x42,0x23,0x00,0x04] + dalign $4, $2, $3, 5 # CHECK: dalign $4, $2, $3, 5 # encoding: [0x58,0x43,0x25,0x1c] + dati $3, 4 # CHECK: dati $3, 4 # encoding: [0x42,0x03,0x00,0x04] + daui $3, $4, 5 # CHECK: daui $3, $4, 5 # encoding: [0xf0,0x64,0x00,0x05] + ddiv $3, $4, $5 # CHECK: ddiv $3, $4, $5 # encoding: [0x58,0xa4,0x19,0x18] + ddivu $3, $4, $5 # CHECK: ddivu $3, $4, $5 # encoding: [0x58,0xa4,0x19,0x98] + deret # CHECK: deret # encoding: [0x00,0x00,0xe3,0x7c] + dext $9, $6, 3, 7 # CHECK: dext $9, $6, 3, 7 # encoding: [0x59,0x26,0x30,0xec] + dextm $9, $6, 3, 39 # CHECK: dextm $9, $6, 3, 39 # encoding: [0x59,0x26,0x30,0xe4] + dextu $9, $6, 35, 7 # CHECK: dextu $9, $6, 35, 7 # encoding: [0x59,0x26,0x30,0xd4] + di # CHECK: di # encoding: [0x00,0x00,0x47,0x7c] + di $0 # CHECK: di # encoding: [0x00,0x00,0x47,0x7c] + di $15 # CHECK: di $15 # encoding: [0x00,0x0f,0x47,0x7c] + dins $4, $2, 3, 5 # CHECK: dins $4, $2, 3, 5 # encoding: [0x58,0x82,0x38,0xcc] + dinsm $4, $2, 3, 5 # CHECK: dinsm $4, $2, 3, 5 # encoding: [0x58,0x82,0x38,0xc4] + dinsu $4, $2, 32, 5 # CHECK: dinsu $4, $2, 32, 5 # encoding: [0x58,0x82,0x20,0x34] + div.d $f2, $f4, $f6 # CHECK: div.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0xf0] + div.s $f3, $f4, $f5 # CHECK: div.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0xf0] + dmfc0 $9, $1, 1 # CHECK: dmfc0 $9, $1, 1 # encoding: [0x59,0x21,0x08,0xfc] + dmfc0 $18, $17 # CHECK: dmfc0 $18, $17, 0 # encoding: [0x5a,0x51,0x00,0xfc] + dmfc1 $9, $f4 # CHECK: dmfc1 $9, $f4 # encoding: [0x55,0x24,0x24,0x3b] + dmfc2 $14, $18 # CHECK: dmfc2 $14, $18 # encoding: [0x01,0xd2,0x6d,0x3c] + dmod $3, $4, $5 # CHECK: dmod $3, $4, $5 # encoding: [0x58,0xa4,0x19,0x58] + dmodu $3, $4, $5 # CHECK: dmodu $3, $4, $5 # encoding: [0x58,0xa4,0x19,0xd8] + dmtc0 $15, $16 # CHECK: dmtc0 $15, $16, 0 # encoding: [0x59,0xf0,0x02,0xfc] + dmtc0 $17, $18, 5 # CHECK: dmtc0 $17, $18, 5 # encoding: [0x5a,0x32,0x2a,0xfc] + dmtc1 $19, $f20 # CHECK: dmtc1 $19, $f20 # encoding: [0x56,0x74,0x2c,0x3b] + dmtc2 $21, $22 # CHECK: dmtc2 $21, $22 # encoding: [0x02,0xb6,0x7d,0x3c] + dsubu $3, 5 # CHECK: daddiu $3, $3, -5 # encoding: [0x5c,0x63,0xff,0xfb] + dsubu $3, $4, 5 # CHECK: daddiu $3, $4, -5 # encoding: [0x5c,0x64,0xff,0xfb] + floor.l.d $f1, $f3 # CHECK: floor.l.d $f1, $f3 # encoding: [0x54,0x23,0x43,0x3b] + floor.l.s $f1, $f3 # CHECK: floor.l.s $f1, $f3 # encoding: [0x54,0x23,0x03,0x3b] + ll $2, 8($4) # CHECK: ll $2, 8($4) # encoding: [0x60,0x44,0x30,0x08] + lwm32 $16, $17, 8($4) # CHECK: lwm32 $16, $17, 8($4) # encoding: [0x20,0x44,0x50,0x08] + lwm32 $16, $17, 8($sp) # CHECK: lwm32 $16, $17, 8($sp) # encoding: [0x20,0x5d,0x50,0x08] + lwm32 $16, $17, $ra, 8($4) # CHECK: lwm32 $16, $17, $ra, 8($4) # encoding: [0x22,0x44,0x50,0x08] + lwm32 $16, $17, $ra, 64($sp) # CHECK: lwm32 $16, $17, $ra, 64($sp) # encoding: [0x22,0x5d,0x50,0x40] + lwm32 $16, $17, $18, $19, 8($4) # CHECK: lwm32 $16, $17, $18, $19, 8($4) # encoding: [0x20,0x84,0x50,0x08] + lwm32 $16, $17, $18, $19, $ra, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $ra, 8($4) # encoding: [0x22,0x84,0x50,0x08] + lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, 8($4) # encoding: [0x21,0x24,0x50,0x08] + lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # encoding: [0x23,0x24,0x50,0x08] + lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # encoding: [0x23,0x24,0x50,0x08] + maddf.d $f3, $f4, $f5 # CHECK: maddf.d $f3, $f4, $f5 # encoding: [0x54,0xa4,0x1b,0xb8] + maddf.s $f3, $f4, $f5 # CHECK: maddf.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x19,0xb8] + max.d $f5, $f4, $f3 # CHECK: max.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x0b] + max.s $f5, $f4, $f3 # CHECK: max.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x0b] + maxa.d $f5, $f4, $f3 # CHECK: maxa.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x2b] + maxa.s $f5, $f4, $f3 # CHECK: maxa.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x2b] + min.d $f5, $f4, $f3 # CHECK: min.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x03] + min.s $f5, $f4, $f3 # CHECK: min.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x03] + mina.d $f5, $f4, $f3 # CHECK: mina.d $f5, $f4, $f3 # encoding: [0x54,0x64,0x2a,0x23] + mina.s $f5, $f4, $f3 # CHECK: mina.s $f5, $f4, $f3 # encoding: [0x54,0x64,0x28,0x23] + mov.d $f4, $f6 # CHECK: mov.d $f4, $f6 # encoding: [0x54,0x86,0x20,0x7b] + mov.s $f6, $f7 # CHECK: mov.s $f6, $f7 # encoding: [0x54,0xc7,0x00,0x7b] + msubf.d $f3, $f4, $f5 # CHECK: msubf.d $f3, $f4, $f5 # encoding: [0x54,0xa4,0x1b,0xf8] + msubf.s $f3, $f4, $f5 # CHECK: msubf.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x19,0xf8] mtc0 $1, $2, 7 # CHECK: mtc0 $1, $2, 7 # encoding: [0x00,0x22,0x3a,0xfc] + mtc0 $5, $9 # CHECK: mtc0 $5, $9, 0 # encoding: [0x00,0xa9,0x02,0xfc] mtc1 $3, $f4 # CHECK: mtc1 $3, $f4 # encoding: [0x54,0x64,0x28,0x3b] mtc2 $5, $6 # CHECK: mtc2 $5, $6 # encoding: [0x00,0xa6,0x5d,0x3c] mthc0 $7, $8 # CHECK: mthc0 $7, $8, 0 # encoding: [0x00,0xe8,0x02,0xf4] mthc0 $9, $10, 1 # CHECK: mthc0 $9, $10, 1 # encoding: [0x01,0x2a,0x0a,0xf4] mthc1 $11, $f12 # CHECK: mthc1 $11, $f12 # encoding: [0x55,0x6c,0x38,0x3b] mthc2 $13, $14 # CHECK: mthc2 $13, $14 # encoding: [0x01,0xae,0x9d,0x3c] - dmtc0 $15, $16 # CHECK: dmtc0 $15, $16, 0 # encoding: [0x59,0xf0,0x02,0xfc] - dmtc0 $17, $18, 5 # CHECK: dmtc0 $17, $18, 5 # encoding: [0x5a,0x32,0x2a,0xfc] - dmtc1 $19, $f20 # CHECK: dmtc1 $19, $f20 # encoding: [0x56,0x74,0x2c,0x3b] - dmtc2 $21, $22 # CHECK: dmtc2 $21, $22 # encoding: [0x02,0xb6,0x7d,0x3c] - dmfc0 $18, $17 # CHECK: dmfc0 $18, $17, 0 # encoding: [0x5a,0x51,0x00,0xfc] - dmfc0 $9, $1, 1 # CHECK: dmfc0 $9, $1, 1 # encoding: [0x59,0x21,0x08,0xfc] - dmfc1 $9, $f4 # CHECK: dmfc1 $9, $f4 # encoding: [0x55,0x24,0x24,0x3b] - dmfc2 $14, $18 # CHECK: dmfc2 $14, $18 # encoding: [0x01,0xd2,0x6d,0x3c] - dadd $9, $6, $7 # CHECK: dadd $9, $6, $7 # encoding: [0x58,0xe6,0x49,0x10] - dadd $s3, $at, $ra # CHECK: dadd $19, $1, $ra # encoding: [0x5b,0xe1,0x99,0x10] - daddiu $24, $2, 18079 # CHECK: daddiu $24, $2, 18079 # encoding: [0x5f,0x02,0x46,0x9f] - daddiu $9, $6, -15001 # CHECK: daddiu $9, $6, -15001 # encoding: [0x5d,0x26,0xc5,0x67] - daddiu $9, -15001 # CHECK: daddiu $9, $9, -15001 # encoding: [0x5d,0x29,0xc5,0x67] - daddiu $9, $3, 8 * 4 # CHECK: daddiu $9, $3, 32 # encoding: [0x5d,0x23,0x00,0x20] - daddiu $9, $3, (8 * 4) # CHECK: daddiu $9, $3, 32 # encoding: [0x5d,0x23,0x00,0x20] - daddiu $k0, $s6, -4586 # CHECK: daddiu $26, $22, -4586 # encoding: [0x5f,0x56,0xee,0x16] - daddiu $15, $11, -5025 # CHECK: daddiu $15, $11, -5025 # encoding: [0x5d,0xeb,0xec,0x5f] - daddiu $14, $14, 4586 # CHECK: daddiu $14, $14, 4586 # encoding: [0x5d,0xce,0x11,0xea] - daddiu $19, $19, 26943 # CHECK: daddiu $19, $19, 26943 # encoding: [0x5e,0x73,0x69,0x3f] - daddiu $11, $26, 31949 # CHECK: daddiu $11, $26, 31949 # encoding: [0x5d,0x7a,0x7c,0xcd] - daddiu $sp, $sp, -32 # CHECK: daddiu $sp, $sp, -32 # encoding: [0x5f,0xbd,0xff,0xe0] - daddu $26, $1, $11 # CHECK: daddu $26, $1, $11 # encoding: [0x59,0x61,0xd1,0x50] - daddu $19, $1, $ra # CHECK: daddu $19, $1, $ra # encoding: [0x5b,0xe1,0x99,0x50] - daddu $9, $6, $7 # CHECK: daddu $9, $6, $7 # encoding: [0x58,0xe6,0x49,0x50] - daddu $9, $3 # CHECK: daddu $9, $9, $3 # encoding: [0x58,0x69,0x49,0x50] - daddu $9, $6, -15001 # CHECK: daddiu $9, $6, -15001 # encoding: [0x5d,0x26,0xc5,0x67] - daddu $9, 10 # CHECK: daddiu $9, $9, 10 # encoding: [0x5d,0x29,0x00,0x0a] - daddu $19, 26943 # CHECK: daddiu $19, $19, 26943 # encoding: [0x5e,0x73,0x69,0x3f] - daddu $24, $2, 18079 # CHECK: daddiu $24, $2, 18079 # encoding: [0x5f,0x02,0x46,0x9f] - dsubu $3, 5 # CHECK: daddiu $3, $3, -5 # encoding: [0x5c,0x63,0xff,0xfb] - dsubu $3, $4, 5 # CHECK: daddiu $3, $4, -5 # encoding: [0x5c,0x64,0xff,0xfb] + mul.d $f2, $f4, $f6 # CHECK: mul.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0xb0] + mul.s $f3, $f4, $f5 # CHECK: mul.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0xb0] + neg.d $f4, $f6 # CHECK: neg.d $f4, $f6 # encoding: [0x54,0x86,0x2b,0x7b] + neg.s $f6, $f7 # CHECK: neg.s $f6, $f7 # encoding: [0x54,0xc7,0x0b,0x7b] + recip.d $f2, $f4 # CHECK: recip.d $f2, $f4 # encoding: [0x54,0x44,0x52,0x3b] + recip.s $f2, $f4 # CHECK: recip.s $f2, $f4 # encoding: [0x54,0x44,0x12,0x3b] + rint.d $f2, $f4 # CHECK: rint.d $f2, $f4 # encoding: [0x54,0x82,0x02,0x20] + rint.s $f2, $f4 # CHECK: rint.s $f2, $f4 # encoding: [0x54,0x82,0x00,0x20] + rotr $2, 7 # CHECK: rotr $2, $2, 7 # encoding: [0x00,0x42,0x38,0xc0] + rotr $9, $6, 7 # CHECK: rotr $9, $6, 7 # encoding: [0x01,0x26,0x38,0xc0] + rotrv $9, $6, $7 # CHECK: rotrv $9, $6, $7 # encoding: [0x00,0xc7,0x48,0xd0] + round.l.d $f2, $f4 # CHECK: round.l.d $f2, $f4 # encoding: [0x54,0x44,0x73,0x3b] + round.l.s $f2, $f4 # CHECK: round.l.s $f2, $f4 # encoding: [0x54,0x44,0x33,0x3b] + round.w.d $f2, $f4 # CHECK: round.w.d $f2, $f4 # encoding: [0x54,0x44,0x7b,0x3b] + round.w.s $f2, $f4 # CHECK: round.w.s $f2, $f4 # encoding: [0x54,0x44,0x3b,0x3b] + sc $2, 8($4) # CHECK: sc $2, 8($4) # encoding: [0x60,0x44,0xb0,0x08] + sel.d $f0, $f2, $f4 # CHECK: sel.d $f0, $f2, $f4 # encoding: [0x54,0x82,0x02,0xb8] + sel.s $f1, $f1, $f2 # CHECK: sel.s $f1, $f1, $f2 # encoding: [0x54,0x41,0x08,0xb8] + seleqz.d $f2, $f4, $f8 # CHECK: seleqz.d $f2, $f4, $f8 # encoding: [0x55,0x04,0x12,0x38] + seleqz.s $f1, $f2, $f3 # CHECK: seleqz.s $f1, $f2, $f3 # encoding: [0x54,0x62,0x08,0x38] + selnez.d $f2, $f4, $f8 # CHECK: selnez.d $f2, $f4, $f8 # encoding: [0x55,0x04,0x12,0x78] + selnez.s $f1, $f2, $f3 # CHECK: selnez.s $f1, $f2, $f3 # encoding: [0x54,0x62,0x08,0x78] + sub.d $f2, $f4, $f6 # CHECK: sub.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0x70] + sub.s $f3, $f4, $f5 # CHECK: sub.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0x70] + swm32 $16, $17, 8($4) # CHECK: swm32 $16, $17, 8($4) # encoding: [0x20,0x44,0xd0,0x08] + swm32 $16, $17, 8($sp) # CHECK: swm32 $16, $17, 8($sp) # encoding: [0x20,0x5d,0xd0,0x08] + swm32 $16, $17, $ra, 8($4) # CHECK: swm32 $16, $17, $ra, 8($4) # encoding: [0x22,0x44,0xd0,0x08] + swm32 $16, $17, $ra, 64($sp) # CHECK: swm32 $16, $17, $ra, 64($sp) # encoding: [0x22,0x5d,0xd0,0x40] + swm32 $16, $17, $18, $19, 8($4) # CHECK: swm32 $16, $17, $18, $19, 8($4) # encoding: [0x20,0x84,0xd0,0x08] + syscall # CHECK: syscall # encoding: [0x00,0x00,0x8b,0x7c] + syscall 396 # CHECK: syscall 396 # encoding: [0x01,0x8c,0x8b,0x7c] + teq $5, $7, 15 # CHECK: teq $5, $7, 15 # encoding: [0x00,0xe5,0xf0,0x3c] + teq $8, $9 # CHECK: teq $8, $9 # encoding: [0x01,0x28,0x00,0x3c] + tge $7, $10 # CHECK: tge $7, $10 # encoding: [0x01,0x47,0x02,0x3c] + tge $7, $19, 15 # CHECK: tge $7, $19, 15 # encoding: [0x02,0x67,0xf2,0x3c] + tgeu $20, $14, 15 # CHECK: tgeu $20, $14, 15 # encoding: [0x01,0xd4,0xf4,0x3c] + tgeu $22, $gp # CHECK: tgeu $22, $gp # encoding: [0x03,0x96,0x04,0x3c] + tlbinv # CHECK: tlbinv # encoding: [0x00,0x00,0x43,0x7c] + tlbinvf # CHECK: tlbinvf # encoding: [0x00,0x00,0x53,0x7c] + tlt $2, $19, 15 # CHECK: tlt $2, $19, 15 # encoding: [0x02,0x62,0xf8,0x3c] + tlt $15, $13 # CHECK: tlt $15, $13 # encoding: [0x01,0xaf,0x08,0x3c] + tltu $11, $16 # CHECK: tltu $11, $16 # encoding: [0x02,0x0b,0x0a,0x3c] + tltu $16, $sp, 15 # CHECK: tltu $16, $sp, 15 # encoding: [0x03,0xb0,0xfa,0x3c] + tne $6, $17 # CHECK: tne $6, $17 # encoding: [0x02,0x26,0x0c,0x3c] + tne $7, $8, 15 # CHECK: tne $7, $8, 15 # encoding: [0x01,0x07,0xfc,0x3c] + wrpgpr $3, $4 # CHECK: wrpgpr $3, $4 # encoding: [0x00,0x64,0xf1,0x7c] + wsbh $3, $4 # CHECK: wsbh $3, $4 # encoding: [0x00,0x64,0x7b,0x3c] 1: