mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-14 09:38:40 +00:00
LHS = X86ISD::CMOVcc LHS, RHS means LHS = RHS if cc. So the operands must be
flipped around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25290 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
874357fa75
commit
e90da97f3e
@ -1606,7 +1606,7 @@ SDOperand X86TargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) {
|
|||||||
addTest = true;
|
addTest = true;
|
||||||
|
|
||||||
if (addTest) {
|
if (addTest) {
|
||||||
CC = DAG.getConstant(X86ISD::COND_E, MVT::i8);
|
CC = DAG.getConstant(X86ISD::COND_NE, MVT::i8);
|
||||||
Cond = DAG.getNode(X86ISD::TEST, MVT::Flag, Op0, Op0);
|
Cond = DAG.getNode(X86ISD::TEST, MVT::Flag, Op0, Op0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1614,8 +1614,10 @@ SDOperand X86TargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) {
|
|||||||
Tys.push_back(Op.getValueType());
|
Tys.push_back(Op.getValueType());
|
||||||
Tys.push_back(MVT::Flag);
|
Tys.push_back(MVT::Flag);
|
||||||
std::vector<SDOperand> Ops;
|
std::vector<SDOperand> Ops;
|
||||||
Ops.push_back(Op.getOperand(1));
|
// X86ISD::CMOV means set the result (which is operand 1) to the RHS if
|
||||||
|
// condition is true.
|
||||||
Ops.push_back(Op.getOperand(2));
|
Ops.push_back(Op.getOperand(2));
|
||||||
|
Ops.push_back(Op.getOperand(1));
|
||||||
Ops.push_back(CC);
|
Ops.push_back(CC);
|
||||||
Ops.push_back(Cond);
|
Ops.push_back(Cond);
|
||||||
return DAG.getNode(X86ISD::CMOV, Tys, Ops);
|
return DAG.getNode(X86ISD::CMOV, Tys, Ops);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user