mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-09 10:31:14 +00:00
Use CreateStackStoreLoad helper in more places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75320 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ebfc177b59
commit
aad3460086
@ -211,18 +211,8 @@ SDValue DAGTypeLegalizer::PromoteIntRes_BIT_CONVERT(SDNode *N) {
|
||||
return DAG.getNode(ISD::BIT_CONVERT, dl, OutVT, GetWidenedVector(InOp));
|
||||
}
|
||||
|
||||
// Otherwise, lower the bit-convert to a store/load from the stack.
|
||||
// Create the stack frame object. Make sure it is aligned for both
|
||||
// the source and destination types.
|
||||
SDValue FIPtr = DAG.CreateStackTemporary(InVT, OutVT);
|
||||
int FI = cast<FrameIndexSDNode>(FIPtr.getNode())->getIndex();
|
||||
const Value *SV = PseudoSourceValue::getFixedStack(FI);
|
||||
|
||||
// Emit a store to the stack slot.
|
||||
SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, InOp, FIPtr, SV, 0);
|
||||
|
||||
// Result is an extending load from the stack slot.
|
||||
return DAG.getExtLoad(ISD::EXTLOAD, dl, NOutVT, Store, FIPtr, SV, 0, OutVT);
|
||||
return DAG.getNode(ISD::ANY_EXTEND, dl, NOutVT,
|
||||
CreateStackStoreLoad(InOp, OutVT));
|
||||
}
|
||||
|
||||
SDValue DAGTypeLegalizer::PromoteIntRes_BSWAP(SDNode *N) {
|
||||
|
@ -1374,18 +1374,7 @@ SDValue DAGTypeLegalizer::WidenVecRes_BIT_CONVERT(SDNode *N) {
|
||||
}
|
||||
}
|
||||
|
||||
// This should occur rarely. Lower the bit-convert to a store/load
|
||||
// from the stack. Create the stack frame object. Make sure it is aligned
|
||||
// for both the source and destination types.
|
||||
SDValue FIPtr = DAG.CreateStackTemporary(InVT, WidenVT);
|
||||
int FI = cast<FrameIndexSDNode>(FIPtr.getNode())->getIndex();
|
||||
const Value *SV = PseudoSourceValue::getFixedStack(FI);
|
||||
|
||||
// Emit a store to the stack slot.
|
||||
SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, InOp, FIPtr, SV, 0);
|
||||
|
||||
// Result is a load from the stack slot.
|
||||
return DAG.getLoad(WidenVT, dl, Store, FIPtr, SV, 0);
|
||||
return CreateStackStoreLoad(InOp, WidenVT);
|
||||
}
|
||||
|
||||
SDValue DAGTypeLegalizer::WidenVecRes_BUILD_VECTOR(SDNode *N) {
|
||||
@ -1867,18 +1856,7 @@ SDValue DAGTypeLegalizer::WidenVecOp_BIT_CONVERT(SDNode *N) {
|
||||
}
|
||||
}
|
||||
|
||||
// Lower the bit-convert to a store/load from the stack. Create the stack
|
||||
// frame object. Make sure it is aligned for both the source and destination
|
||||
// types.
|
||||
SDValue FIPtr = DAG.CreateStackTemporary(InWidenVT, VT);
|
||||
int FI = cast<FrameIndexSDNode>(FIPtr.getNode())->getIndex();
|
||||
const Value *SV = PseudoSourceValue::getFixedStack(FI);
|
||||
|
||||
// Emit a store to the stack slot.
|
||||
SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, InOp, FIPtr, SV, 0);
|
||||
|
||||
// Result is a load from the stack slot.
|
||||
return DAG.getLoad(VT, dl, Store, FIPtr, SV, 0);
|
||||
return CreateStackStoreLoad(InOp, VT);
|
||||
}
|
||||
|
||||
SDValue DAGTypeLegalizer::WidenVecOp_CONCAT_VECTORS(SDNode *N) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user