mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-16 14:31:59 +00:00
Treat PPCISD::STFIWX like the memory opcode that it is
PPCISD::STFIWX is really a memory opcode, and so it should come after FIRST_TARGET_MEMORY_OPCODE, and we should use DAG.getMemIntrinsicNode to create nodes using it. No functionality change intended (although there could be optimization benefits from preserving the MMO information). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178468 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0857a6fd33
commit
f170cc9b2e
@ -6673,8 +6673,15 @@ SDValue PPCTargetLowering::PerformDAGCombine(SDNode *N,
|
||||
Val = DAG.getNode(PPCISD::FCTIWZ, dl, MVT::f64, Val);
|
||||
DCI.AddToWorklist(Val.getNode());
|
||||
|
||||
Val = DAG.getNode(PPCISD::STFIWX, dl, MVT::Other, N->getOperand(0), Val,
|
||||
N->getOperand(2), N->getOperand(3));
|
||||
SDValue Ops[] = {
|
||||
N->getOperand(0), Val, N->getOperand(2),
|
||||
DAG.getValueType(N->getOperand(1).getValueType())
|
||||
};
|
||||
|
||||
Val = DAG.getMemIntrinsicNode(PPCISD::STFIWX, dl,
|
||||
DAG.getVTList(MVT::Other), Ops, array_lengthof(Ops),
|
||||
cast<StoreSDNode>(N)->getMemoryVT(),
|
||||
cast<StoreSDNode>(N)->getMemOperand());
|
||||
DCI.AddToWorklist(Val.getNode());
|
||||
return Val;
|
||||
}
|
||||
|
@ -41,10 +41,6 @@ namespace llvm {
|
||||
/// of that FP value.
|
||||
FCTIDZ, FCTIWZ,
|
||||
|
||||
/// STFIWX - The STFIWX instruction. The first operand is an input token
|
||||
/// chain, then an f64 value to store, then an address to store it to.
|
||||
STFIWX,
|
||||
|
||||
// VMADDFP, VNMSUBFP - The VMADDFP and VNMSUBFP instructions, taking
|
||||
// three v4f32 operands and producing a v4f32 result.
|
||||
VMADDFP, VNMSUBFP,
|
||||
@ -242,6 +238,10 @@ namespace llvm {
|
||||
/// or i32.
|
||||
LBRX,
|
||||
|
||||
/// STFIWX - The STFIWX instruction. The first operand is an input token
|
||||
/// chain, then an f64 value to store, then an address to store it to.
|
||||
STFIWX,
|
||||
|
||||
/// GPRC, CHAIN = LFIWAX CHAIN, Ptr - This is a floating-point
|
||||
/// load which sign-extends from a 32-bit integer value into the
|
||||
/// destination 64-bit register.
|
||||
|
Loading…
x
Reference in New Issue
Block a user