mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-11 21:45:16 +00:00
[mips] Correct predicates for loads, bit manipulation instructions and some pseudos
Additionally, correct the definition of the rdhwr instruction. Reviewers: atanasyan, abeserminji, smaksimovic Differential Revision: https://reviews.llvm.org/D48216 llvm-svn: 335162
This commit is contained in:
parent
5622f9d716
commit
d94ff12893
@ -776,7 +776,8 @@ let DecoderNamespace = "MicroMips" in {
|
||||
ADD_FM_MM<0, 0x290>, ISA_MICROMIPS32_NOT_MIPS32R6;
|
||||
def XOR_MM : MMRel, ArithLogicR<"xor", GPR32Opnd, 1, II_XOR, xor>,
|
||||
ADD_FM_MM<0, 0x310>, ISA_MICROMIPS32_NOT_MIPS32R6;
|
||||
def NOR_MM : MMRel, LogicNOR<"nor", GPR32Opnd>, ADD_FM_MM<0, 0x2d0>;
|
||||
def NOR_MM : MMRel, LogicNOR<"nor", GPR32Opnd>, ADD_FM_MM<0, 0x2d0>,
|
||||
ISA_MICROMIPS32_NOT_MIPS32R6;
|
||||
def MULT_MM : MMRel, Mult<"mult", II_MULT, GPR32Opnd, [HI0, LO0]>,
|
||||
MULT_FM_MM<0x22c>, ISA_MICROMIPS32_NOT_MIPS32R6;
|
||||
def MULTu_MM : MMRel, Mult<"multu", II_MULTU, GPR32Opnd, [HI0, LO0]>,
|
||||
@ -1397,6 +1398,10 @@ let EncodingPredicates = [InMicroMips] in {
|
||||
def : MipsInstAlias<"j $rs", (JR_MM GPR32Opnd:$rs), 0>,
|
||||
ISA_MICROMIPS32_NOT_MIPS32R6;
|
||||
}
|
||||
def : MipsInstAlias<"rdhwr $rt, $rs",
|
||||
(RDHWR_MM GPR32Opnd:$rt, HWRegsOpnd:$rs, 0), 1>,
|
||||
ISA_MICROMIPS32_NOT_MIPS32R6;
|
||||
|
||||
def : MipsInstAlias<"hypcall", (HYPCALL_MM 0), 1>,
|
||||
ISA_MICROMIPS32R5, ASE_VIRT;
|
||||
def : MipsInstAlias<"mfgc0 $rt, $rs",
|
||||
|
@ -508,6 +508,7 @@ class EXT_FM<bits<6> funct> : StdArch {
|
||||
class RDHWR_FM : StdArch {
|
||||
bits<5> rt;
|
||||
bits<5> rd;
|
||||
bits<3> sel;
|
||||
|
||||
bits<32> Inst;
|
||||
|
||||
@ -515,7 +516,8 @@ class RDHWR_FM : StdArch {
|
||||
let Inst{25-21} = 0;
|
||||
let Inst{20-16} = rt;
|
||||
let Inst{15-11} = rd;
|
||||
let Inst{10-6} = 0;
|
||||
let Inst{10-9} = 0b00;
|
||||
let Inst{8-6} = sel;
|
||||
let Inst{5-0} = 0x3b;
|
||||
}
|
||||
|
||||
|
@ -1824,8 +1824,8 @@ class SubwordSwap<string opstr, RegisterOperand RO,
|
||||
|
||||
// Read Hardware
|
||||
class ReadHardware<RegisterOperand CPURegOperand, RegisterOperand RO> :
|
||||
InstSE<(outs CPURegOperand:$rt), (ins RO:$rd), "rdhwr\t$rt, $rd", [],
|
||||
II_RDHWR, FrmR, "rdhwr">;
|
||||
InstSE<(outs CPURegOperand:$rt), (ins RO:$rd, uimm8:$sel),
|
||||
"rdhwr\t$rt, $rd, $sel", [], II_RDHWR, FrmR, "rdhwr">;
|
||||
|
||||
// Ext and Ins
|
||||
class ExtBase<string opstr, RegisterOperand RO, Operand PosOpnd,
|
||||
@ -1834,7 +1834,7 @@ class ExtBase<string opstr, RegisterOperand RO, Operand PosOpnd,
|
||||
InstSE<(outs RO:$rt), (ins RO:$rs, PosOpnd:$pos, SizeOpnd:$size),
|
||||
!strconcat(opstr, "\t$rt, $rs, $pos, $size"),
|
||||
[(set RO:$rt, (Op RO:$rs, PosImm:$pos, SizeImm:$size))], II_EXT,
|
||||
FrmR, opstr>, ISA_MIPS32R2;
|
||||
FrmR, opstr>;
|
||||
|
||||
// 'ins' and its' 64 bit variants are matched by C++ code.
|
||||
class InsBase<string opstr, RegisterOperand RO, Operand PosOpnd,
|
||||
@ -1843,7 +1843,7 @@ class InsBase<string opstr, RegisterOperand RO, Operand PosOpnd,
|
||||
!strconcat(opstr, "\t$rt, $rs, $pos, $size"),
|
||||
[(set RO:$rt, (null_frag RO:$rs, PosImm:$pos, SizeImm:$size,
|
||||
RO:$src))],
|
||||
II_INS, FrmR, opstr>, ISA_MIPS32R2 {
|
||||
II_INS, FrmR, opstr> {
|
||||
let Constraints = "$src = $rt";
|
||||
}
|
||||
|
||||
@ -2050,19 +2050,20 @@ let AdditionalPredicates = [NotInMicroMips] in {
|
||||
/// aligned
|
||||
let AdditionalPredicates = [NotInMicroMips] in {
|
||||
def LB : LoadMemory<"lb", GPR32Opnd, mem_simmptr, sextloadi8, II_LB>, MMRel,
|
||||
LW_FM<0x20>;
|
||||
LW_FM<0x20>, ISA_MIPS1;
|
||||
def LBu : LoadMemory<"lbu", GPR32Opnd, mem_simmptr, zextloadi8, II_LBU,
|
||||
addrDefault>, MMRel, LW_FM<0x24>;
|
||||
addrDefault>, MMRel, LW_FM<0x24>, ISA_MIPS1;
|
||||
def LH : LoadMemory<"lh", GPR32Opnd, mem_simmptr, sextloadi16, II_LH,
|
||||
addrDefault>, MMRel, LW_FM<0x21>;
|
||||
addrDefault>, MMRel, LW_FM<0x21>, ISA_MIPS1;
|
||||
def LHu : LoadMemory<"lhu", GPR32Opnd, mem_simmptr, zextloadi16, II_LHU>,
|
||||
MMRel, LW_FM<0x25>;
|
||||
MMRel, LW_FM<0x25>, ISA_MIPS1;
|
||||
def LW : StdMMR6Rel, Load<"lw", GPR32Opnd, load, II_LW, addrDefault>, MMRel,
|
||||
LW_FM<0x23>;
|
||||
LW_FM<0x23>, ISA_MIPS1;
|
||||
def SB : StdMMR6Rel, Store<"sb", GPR32Opnd, truncstorei8, II_SB>, MMRel,
|
||||
LW_FM<0x28>;
|
||||
def SH : Store<"sh", GPR32Opnd, truncstorei16, II_SH>, MMRel, LW_FM<0x29>;
|
||||
def SW : Store<"sw", GPR32Opnd, store, II_SW>, MMRel, LW_FM<0x2b>;
|
||||
LW_FM<0x28>, ISA_MIPS1;
|
||||
def SH : Store<"sh", GPR32Opnd, truncstorei16, II_SH>, MMRel, LW_FM<0x29>,
|
||||
ISA_MIPS1;
|
||||
def SW : Store<"sw", GPR32Opnd, store, II_SW>, MMRel, LW_FM<0x2b>, ISA_MIPS1;
|
||||
}
|
||||
|
||||
/// load/store left/right
|
||||
@ -2210,10 +2211,10 @@ let AdditionalPredicates = [NotInMicroMips] in {
|
||||
ISA_MIPS1_NOT_32R6_64R6;
|
||||
def BLTZALL : MMRel, BGEZAL_FT<"bltzall", brtarget, GPR32Opnd>,
|
||||
BGEZAL_FM<0x12>, ISA_MIPS2_NOT_32R6_64R6;
|
||||
def BAL_BR : BAL_BR_Pseudo<BGEZAL, brtarget>;
|
||||
def BAL_BR : BAL_BR_Pseudo<BGEZAL, brtarget>, ISA_MIPS1;
|
||||
}
|
||||
let AdditionalPredicates = [NotInMips16Mode, NotInMicroMips] in {
|
||||
def TAILCALL : TailCall<J, jmptarget>;
|
||||
def TAILCALL : TailCall<J, jmptarget>, ISA_MIPS1;
|
||||
}
|
||||
let AdditionalPredicates = [NotInMips16Mode, NotInMicroMips,
|
||||
NoIndirectJumpGuards] in
|
||||
@ -2357,15 +2358,15 @@ let AdditionalPredicates = [NotInMicroMips] in {
|
||||
0, 1, 1>, ISA_MIPS1_NOT_32R6_64R6;
|
||||
def PseudoUDIV : MultDivPseudo<UDIV, ACC64, GPR32Opnd, MipsDivRemU, II_DIVU,
|
||||
0, 1, 1>, ISA_MIPS1_NOT_32R6_64R6;
|
||||
def RDHWR : MMRel, ReadHardware<GPR32Opnd, HWRegsOpnd>, RDHWR_FM;
|
||||
def RDHWR : MMRel, ReadHardware<GPR32Opnd, HWRegsOpnd>, RDHWR_FM, ISA_MIPS1;
|
||||
// TODO: Add '0 < pos+size <= 32' constraint check to ext instruction
|
||||
def EXT : MMRel, StdMMR6Rel, ExtBase<"ext", GPR32Opnd, uimm5, uimm5_plus1,
|
||||
immZExt5, immZExt5Plus1, MipsExt>,
|
||||
EXT_FM<0>;
|
||||
EXT_FM<0>, ISA_MIPS32R2;
|
||||
def INS : MMRel, StdMMR6Rel, InsBase<"ins", GPR32Opnd, uimm5,
|
||||
uimm5_inssize_plus1, immZExt5,
|
||||
immZExt5Plus1>,
|
||||
EXT_FM<4>;
|
||||
EXT_FM<4>, ISA_MIPS32R2;
|
||||
}
|
||||
/// Move Control Registers From/To CPU Registers
|
||||
let AdditionalPredicates = [NotInMicroMips] in {
|
||||
@ -2711,6 +2712,9 @@ let AdditionalPredicates = [NotInMicroMips] in {
|
||||
(TLTU GPR32Opnd:$rs, GPR32Opnd:$rt, 0), 1>, ISA_MIPS2;
|
||||
def : MipsInstAlias<"tne $rs, $rt",
|
||||
(TNE GPR32Opnd:$rs, GPR32Opnd:$rt, 0), 1>, ISA_MIPS2;
|
||||
def : MipsInstAlias<"rdhwr $rt, $rs",
|
||||
(RDHWR GPR32Opnd:$rt, HWRegsOpnd:$rs, 0), 1>, ISA_MIPS1;
|
||||
|
||||
}
|
||||
def : MipsInstAlias<"sub, $rd, $rs, $imm",
|
||||
(ADDi GPR32Opnd:$rd, GPR32Opnd:$rs,
|
||||
|
@ -976,9 +976,9 @@ bool MipsSEDAGToDAGISel::trySelect(SDNode *Node) {
|
||||
}
|
||||
|
||||
SDNode *Rdhwr =
|
||||
CurDAG->getMachineNode(RdhwrOpc, DL,
|
||||
Node->getValueType(0),
|
||||
CurDAG->getRegister(Mips::HWR29, MVT::i32));
|
||||
CurDAG->getMachineNode(RdhwrOpc, DL, Node->getValueType(0),
|
||||
CurDAG->getRegister(Mips::HWR29, MVT::i32),
|
||||
CurDAG->getTargetConstant(0, DL, MVT::i32));
|
||||
SDValue Chain = CurDAG->getCopyToReg(CurDAG->getEntryNode(), DL, DestReg,
|
||||
SDValue(Rdhwr, 0));
|
||||
SDValue ResNode = CurDAG->getCopyFromReg(Chain, DL, DestReg, PtrVT);
|
||||
|
@ -157,7 +157,7 @@ body: |
|
||||
%0 = ADDu killed %8, killed %14
|
||||
%15 = LUi64 target-flags(mips-tprel-hi) @__tls_guard
|
||||
%16 = DADDiu killed %15, target-flags(mips-tprel-lo) @__tls_guard
|
||||
%17 = RDHWR64 $hwr29
|
||||
%17 = RDHWR64 $hwr29, 0
|
||||
$v1_64 = COPY %17
|
||||
%18 = COPY $v1_64
|
||||
%19 = DADDu %18, killed %16
|
||||
@ -170,7 +170,7 @@ body: |
|
||||
|
||||
%32 = LUi64 target-flags(mips-tprel-hi) @k
|
||||
%33 = DADDiu killed %32, target-flags(mips-tprel-lo) @k
|
||||
%34 = RDHWR64 $hwr29
|
||||
%34 = RDHWR64 $hwr29, 0
|
||||
$v1_64 = COPY %34
|
||||
%35 = COPY $v1_64
|
||||
%36 = DADDu %35, killed %33
|
||||
@ -182,7 +182,7 @@ body: |
|
||||
|
||||
%21 = LUi64 target-flags(mips-tprel-hi) @__tls_guard
|
||||
%22 = DADDiu killed %21, target-flags(mips-tprel-lo) @__tls_guard
|
||||
%23 = RDHWR64 $hwr29
|
||||
%23 = RDHWR64 $hwr29, 0
|
||||
$v1_64 = COPY %23
|
||||
%24 = COPY $v1_64
|
||||
%25 = DADDu %24, killed %22
|
||||
@ -222,7 +222,7 @@ body: |
|
||||
ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp
|
||||
|
||||
bb.5._ZTW1j.exit:
|
||||
%44 = RDHWR64 $hwr29
|
||||
%44 = RDHWR64 $hwr29, 0
|
||||
$v1_64 = COPY %44
|
||||
%45 = LD %43, target-flags(mips-gottprel) @j :: (load 8)
|
||||
%46 = COPY $v1_64
|
||||
|
@ -131,6 +131,7 @@ ori $9, $6, 17767 # CHECK: ori $9, $6, 17767 # encoding: [0x51,0x
|
||||
xor $3, $3, $5 # CHECK: xor $3, $3, $5 # encoding: [0x00,0xa3,0x1b,0x10]
|
||||
xori $9, $6, 17767 # CHECK: xori $9, $6, 17767 # encoding: [0x71,0x26,0x45,0x67]
|
||||
nor $9, $6, $7 # CHECK: nor $9, $6, $7 # encoding: [0x00,0xe6,0x4a,0xd0]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} NOR_MM
|
||||
not $7, $8 # CHECK: not $7, $8 # encoding: [0x00,0x08,0x3a,0xd0]
|
||||
not $7 # CHECK: not $7, $7 # encoding: [0x00,0x07,0x3a,0xd0]
|
||||
mul $9, $6, $7 # CHECK: mul $9, $6, $7 # encoding: [0x00,0xe6,0x4a,0x10]
|
||||
@ -142,6 +143,12 @@ div $zero, $9, $7 # CHECK: div $zero, $9, $7 # encoding: [0x00,0x
|
||||
div.d $f0, $f2, $f4 # CHECK: div.d $f0, $f2, $f4 # encoding: [0x54,0x82,0x01,0xf0]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} FDIV_D32_MM
|
||||
divu $zero, $9, $7 # CHECK: divu $zero, $9, $7 # encoding: [0x00,0xe9,0xbb,0x3c]
|
||||
rdhwr $5, $29, 2 # CHECK: rdhwr $5, $29, 2 # encoding: [0x00,0xbd,0x6b,0x3c]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} RDHWR_MM
|
||||
rdhwr $5, $29, 0 # CHECK: rdhwr $5, $29 # encoding: [0x00,0xbd,0x6b,0x3c]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} RDHWR_MM
|
||||
rdhwr $5, $29 # CHECK: rdhwr $5, $29 # encoding: [0x00,0xbd,0x6b,0x3c]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} RDHWR_MM
|
||||
sll $4, $3, 7 # CHECK: sll $4, $3, 7 # encoding: [0x00,0x83,0x38,0x00]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} SLL_MM
|
||||
sllv $2, $3, $5 # CHECK: sllv $2, $3, $5 # encoding: [0x00,0x65,0x10,0x10]
|
||||
@ -157,15 +164,25 @@ srlv $2, $3, $5 # CHECK: srlv $2, $3, $5 # encoding: [0x00,0x
|
||||
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]
|
||||
lb $5, 8($4) # CHECK: lb $5, 8($4) # encoding: [0x1c,0xa4,0x00,0x08]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} LB_MM
|
||||
lbu $6, 8($4) # CHECK: lbu $6, 8($4) # encoding: [0x14,0xc4,0x00,0x08]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} LBu_MM
|
||||
lh $2, 8($4) # CHECK: lh $2, 8($4) # encoding: [0x3c,0x44,0x00,0x08]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} LH_MM
|
||||
lhu $4, 8($2) # CHECK: lhu $4, 8($2) # encoding: [0x34,0x82,0x00,0x08]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} LHu_MM
|
||||
lw $6, 4($5) # CHECK: lw $6, 4($5) # encoding: [0xfc,0xc5,0x00,0x04]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} LW_MM
|
||||
lw $6, 123($sp) # CHECK: lw $6, 123($sp) # encoding: [0xfc,0xdd,0x00,0x7b]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} LW_MM
|
||||
sb $5, 8($4) # CHECK: sb $5, 8($4) # encoding: [0x18,0xa4,0x00,0x08]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} SB_MM
|
||||
sh $2, 8($4) # CHECK: sh $2, 8($4) # encoding: [0x38,0x44,0x00,0x08]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} SH_MM
|
||||
sw $5, 4($6) # CHECK: sw $5, 4($6) # encoding: [0xf8,0xa6,0x00,0x04]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} SW_MM
|
||||
sw $5, 123($sp) # CHECK: sw $5, 123($sp) # encoding: [0xf8,0xbd,0x00,0x7b]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} SW_MM
|
||||
lwu $2, 8($4) # CHECK: lwu $2, 8($4) # encoding: [0x60,0x44,0xe0,0x08]
|
||||
lwl $4, 16($5) # CHECK: lwl $4, 16($5) # encoding: [0x60,0x85,0x00,0x10]
|
||||
lwr $4, 16($5) # CHECK: lwr $4, 16($5) # encoding: [0x60,0x85,0x10,0x10]
|
||||
|
@ -82,7 +82,9 @@
|
||||
lapc $7, 1048572 # CHECK: lapc $7, 1048572 # encoding: [0x78,0xe3,0xff,0xff]
|
||||
lapc $7, -1048576 # CHECK: lapc $7, -1048576 # encoding: [0x78,0xe4,0x00,0x00]
|
||||
lh $2, 8($4) # CHECK: lh $2, 8($4) # encoding: [0x3c,0x44,0x00,0x08]
|
||||
# CHECK-NEXT: # <MCInst #{{.*}} LH_MM
|
||||
lhu $4, 8($2) # CHECK: lhu $4, 8($2) # encoding: [0x34,0x82,0x00,0x08]
|
||||
# CHECK-NEXT: # <MCInst #{{.*}} LHu_MM
|
||||
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]
|
||||
lwm $16, $17, $ra, 8($sp) # CHECK: lwm16 $16, $17, $ra, 8($sp) # encoding: [0x45,0x22]
|
||||
@ -124,6 +126,7 @@
|
||||
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]
|
||||
# CHECK-NEXT: # <MCInst #{{.*}} NOR_MMR6
|
||||
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]
|
||||
@ -143,6 +146,7 @@
|
||||
subu $3, $4, $5 # CHECK: subu $3, $4, $5 # encoding: [0x00,0xa4,0x19,0xd0]
|
||||
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]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} SW_MMR6
|
||||
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]
|
||||
@ -151,8 +155,11 @@
|
||||
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]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} RDHWR_MMR6
|
||||
rdhwr $5, $29, 0 # CHECK: rdhwr $5, $29 # encoding: [0x00,0xbd,0x01,0xc0]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} RDHWR_MMR6
|
||||
rdhwr $5, $29 # CHECK: rdhwr $5, $29 # encoding: [0x00,0xbd,0x01,0xc0]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} RDHWR_MMR6
|
||||
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]
|
||||
@ -276,7 +283,9 @@
|
||||
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]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} SB_MMR6
|
||||
sh $4, 6($5) # CHECK: sh $4, 6($5) # encoding: [0x38,0x85,0x00,0x06]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} SH_MMR6
|
||||
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]
|
||||
@ -305,7 +314,9 @@
|
||||
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]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} LB_MMR6
|
||||
lbu $4, 8($5) # CHECK: lbu $4, 8($5) # encoding: [0x14,0x85,0x00,0x08]
|
||||
# CHECK-NEXT: # <MCInst #{{[0-9]+}} LBU_MMR6
|
||||
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]
|
||||
|
@ -9,3 +9,5 @@
|
||||
di # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ei $t6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ei # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ext $1, $2, 4, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ins $1, $2, 4, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
|
@ -98,3 +98,5 @@
|
||||
suxc1 $f12,$k1($t5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
swxc1 $f19,$t4($k0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
wsbh $k1,$t1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ext $1, $2, 4, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ins $1, $2, 4, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
|
@ -9,3 +9,5 @@
|
||||
di # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ei $t6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ei # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ext $1, $2, 4, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ins $1, $2, 4, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
|
@ -34,3 +34,5 @@
|
||||
suxc1 $f12,$k1($t5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
swxc1 $f19,$t4($k0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
wsbh $k1,$t1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ext $1, $2, 4, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ins $1, $2, 4, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
|
@ -9,3 +9,5 @@
|
||||
di # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ei $t6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ei # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ext $1, $2, 4, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ins $1, $2, 4, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
|
@ -9,3 +9,5 @@
|
||||
di # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ei $t6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ei # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ext $1, $2, 4, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
ins $1, $2, 4, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
|
Loading…
Reference in New Issue
Block a user