mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-23 05:29:23 +00:00
Some code clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60850 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9a90132af4
commit
6bb14ca775
@ -1532,22 +1532,24 @@ SDNode *X86DAGToDAGISel::Select(SDValue N) {
|
||||
SDValue Chain = Node->getOperand(0);
|
||||
SDValue N1 = Node->getOperand(1);
|
||||
SDValue N2 = Node->getOperand(2);
|
||||
if (!isa<FrameIndexSDNode>(N1))
|
||||
FrameIndexSDNode *FINode = dyn_cast<FrameIndexSDNode>(N1);
|
||||
if (!FINode)
|
||||
break;
|
||||
int FI = cast<FrameIndexSDNode>(N1)->getIndex();
|
||||
if (N2.getOpcode() == ISD::ADD &&
|
||||
N2.getOperand(0).getOpcode() == X86ISD::GlobalBaseReg)
|
||||
N2 = N2.getOperand(1);
|
||||
if (N2.getOpcode() == X86ISD::Wrapper &&
|
||||
isa<GlobalAddressSDNode>(N2.getOperand(0))) {
|
||||
GlobalValue *GV =
|
||||
cast<GlobalAddressSDNode>(N2.getOperand(0))->getGlobal();
|
||||
SDValue Tmp1 = CurDAG->getTargetFrameIndex(FI, TLI.getPointerTy());
|
||||
SDValue Tmp2 = CurDAG->getTargetGlobalAddress(GV, TLI.getPointerTy());
|
||||
if (N2.getOpcode() != X86ISD::Wrapper)
|
||||
break;
|
||||
GlobalAddressSDNode *GVNode = dyn_cast<GlobalAddressSDNode>(N2.getOperand(0));
|
||||
if (!GVNode)
|
||||
break;
|
||||
SDValue Tmp1 = CurDAG->getTargetFrameIndex(FINode->getIndex(),
|
||||
TLI.getPointerTy());
|
||||
SDValue Tmp2 = CurDAG->getTargetGlobalAddress(GVNode->getGlobal(),
|
||||
TLI.getPointerTy());
|
||||
SDValue Ops[] = { Tmp1, Tmp2, Chain };
|
||||
return CurDAG->getTargetNode(TargetInstrInfo::DECLARE,
|
||||
MVT::Other, Ops, 3);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user