mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-02 23:26:31 +00:00
handle the "mov reg1, reg2" case in isMoveInstr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28945 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -183,10 +183,12 @@ void ARMDAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) {
|
||||
ScheduleAndEmitDAG(DAG);
|
||||
}
|
||||
|
||||
static void SelectFrameIndex(SelectionDAG *CurDAG, SDOperand &Result, SDNode *N) {
|
||||
static void SelectFrameIndex(SelectionDAG *CurDAG, SDOperand &Result, SDNode *N, SDOperand Op) {
|
||||
int FI = cast<FrameIndexSDNode>(N)->getIndex();
|
||||
Result = CurDAG->SelectNodeTo(N, ARM::movrr, MVT::i32,
|
||||
CurDAG->getTargetFrameIndex(FI, MVT::i32));
|
||||
|
||||
SDOperand TFI = CurDAG->getTargetFrameIndex(FI, Op.getValueType());
|
||||
|
||||
Result = CurDAG->SelectNodeTo(N, ARM::movri, Op.getValueType(), TFI);
|
||||
}
|
||||
|
||||
void ARMDAGToDAGISel::Select(SDOperand &Result, SDOperand Op) {
|
||||
@@ -198,7 +200,7 @@ void ARMDAGToDAGISel::Select(SDOperand &Result, SDOperand Op) {
|
||||
break;
|
||||
|
||||
case ISD::FrameIndex:
|
||||
SelectFrameIndex(CurDAG, Result, N);
|
||||
SelectFrameIndex(CurDAG, Result, N, Op);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user