mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-03 11:08:32 +00:00
Properly pseudo-ize ARM MVNCCi.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127482 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6a44adade2
commit
e672ff8430
@ -756,6 +756,17 @@ bool ARMExpandPseudo::ExpandMI(MachineBasicBlock &MBB,
|
||||
MI.eraseFromParent();
|
||||
return true;
|
||||
}
|
||||
case ARM::MVNCCi: {
|
||||
BuildMI(MBB, MBBI, MI.getDebugLoc(), TII->get(ARM::MVNi),
|
||||
MI.getOperand(1).getReg())
|
||||
.addImm(MI.getOperand(2).getImm())
|
||||
.addImm(MI.getOperand(3).getImm()) // 'pred'
|
||||
.addReg(MI.getOperand(4).getReg())
|
||||
.addReg(0); // 's' bit
|
||||
|
||||
MI.eraseFromParent();
|
||||
return true;
|
||||
}
|
||||
case ARM::Int_eh_sjlj_dispatchsetup: {
|
||||
MachineFunction &MF = *MI.getParent()->getParent();
|
||||
const ARMBaseInstrInfo *AII =
|
||||
|
@ -3183,19 +3183,11 @@ def MOVCCi32imm : ARMPseudoInst<(outs GPR:$Rd),
|
||||
Size8Bytes, IIC_iCMOVix2, []>, RegConstraint<"$false = $Rd">;
|
||||
|
||||
let isMoveImm = 1 in
|
||||
def MVNCCi : AI1<0b1111, (outs GPR:$Rd),
|
||||
(ins GPR:$false, so_imm:$imm), DPFrm, IIC_iCMOVi,
|
||||
"mvn", "\t$Rd, $imm",
|
||||
def MVNCCi : ARMPseudoInst<(outs GPR:$Rd),
|
||||
(ins GPR:$false, so_imm:$imm, pred:$p),
|
||||
Size4Bytes, IIC_iCMOVi,
|
||||
[/*(set GPR:$Rd, (ARMcmov GPR:$false, so_imm_not:$imm, imm:$cc, CCR:$ccr))*/]>,
|
||||
RegConstraint<"$false = $Rd">, UnaryDP {
|
||||
bits<4> Rd;
|
||||
bits<12> imm;
|
||||
let Inst{25} = 1;
|
||||
let Inst{20} = 0;
|
||||
let Inst{19-16} = 0b0000;
|
||||
let Inst{15-12} = Rd;
|
||||
let Inst{11-0} = imm;
|
||||
}
|
||||
RegConstraint<"$false = $Rd">;
|
||||
} // neverHasSideEffects
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
Loading…
x
Reference in New Issue
Block a user