mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-10 04:33:40 +00:00
Flag MOV32to32_ with EXTRACT_SUBREG. They should not be scheduled apart.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42894 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a8e8864094
commit
96aaa54529
@ -1000,8 +1000,9 @@ SDNode *X86DAGToDAGISel::getTruncate(SDOperand N0, MVT::ValueType VT) {
|
|||||||
VT = MVT::i32;
|
VT = MVT::i32;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
N0 =
|
N0 = SDOperand(CurDAG->getTargetNode(Opc, VT, MVT::Flag, N0), 0);
|
||||||
SDOperand(CurDAG->getTargetNode(Opc, VT, N0), 0);
|
return CurDAG->getTargetNode(X86::EXTRACT_SUBREG,
|
||||||
|
VT, N0, SRIdx, N0.getValue(1));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MVT::i16:
|
case MVT::i16:
|
||||||
@ -1010,11 +1011,9 @@ SDNode *X86DAGToDAGISel::getTruncate(SDOperand N0, MVT::ValueType VT) {
|
|||||||
case MVT::i32:
|
case MVT::i32:
|
||||||
SRIdx = CurDAG->getTargetConstant(3, MVT::i32); // SubRegSet 3
|
SRIdx = CurDAG->getTargetConstant(3, MVT::i32); // SubRegSet 3
|
||||||
break;
|
break;
|
||||||
default: assert(0 && "Unknown truncate!");
|
default: assert(0 && "Unknown truncate!"); break;
|
||||||
}
|
}
|
||||||
return CurDAG->getTargetNode(X86::EXTRACT_SUBREG,
|
return CurDAG->getTargetNode(X86::EXTRACT_SUBREG, VT, N0, SRIdx);
|
||||||
VT,
|
|
||||||
N0, SRIdx);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1382,7 +1381,8 @@ SDNode *X86DAGToDAGISel::Select(SDOperand N) {
|
|||||||
default: assert(0 && "Unknown any_extend!");
|
default: assert(0 && "Unknown any_extend!");
|
||||||
}
|
}
|
||||||
if (SRIdx.Val) {
|
if (SRIdx.Val) {
|
||||||
SDNode *ResNode = CurDAG->getTargetNode(X86::INSERT_SUBREG, NVT, N0, SRIdx);
|
SDNode *ResNode = CurDAG->getTargetNode(X86::INSERT_SUBREG,
|
||||||
|
NVT, N0, SRIdx);
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
DOUT << std::string(Indent-2, ' ') << "=> ";
|
DOUT << std::string(Indent-2, ' ') << "=> ";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user