Changes in directory llvm/lib/Target/PowerPC:
PPCISelLowering.cpp updated: 1.211 -> 1.212 PPCInstr64Bit.td updated: 1.21 -> 1.22 PPCInstrInfo.td updated: 1.247 -> 1.248 --- Log message: Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode. --- Diffs of the changes: (+21 -23) PPCISelLowering.cpp | 24 +++++++++++------------- PPCInstr64Bit.td | 12 ++++++------ PPCInstrInfo.td | 8 ++++---- 3 files changed, 21 insertions(+), 23 deletions(-) Index: llvm/lib/Target/PowerPC/PPCISelLowering.cpp diff -u llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.211 llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.212 --- llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.211 Mon Oct 9 15:57:25 2006 +++ llvm/lib/Target/PowerPC/PPCISelLowering.cpp Fri Oct 13 16:14:26 2006 @@ -47,6 +47,9 @@ setLoadXAction(ISD::SEXTLOAD, MVT::i1, Expand); setLoadXAction(ISD::SEXTLOAD, MVT::i8, Expand); + // PowerPC does not have truncstore for i1. + setStoreXAction(MVT::i1, Promote); + setOperationAction(ISD::ConstantFP, MVT::f64, Expand); setOperationAction(ISD::ConstantFP, MVT::f32, Expand); @@ -117,9 +120,6 @@ setOperationAction(ISD::BIT_CONVERT, MVT::i64, Expand); setOperationAction(ISD::BIT_CONVERT, MVT::f64, Expand); - // PowerPC does not have truncstore for i1. - setOperationAction(ISD::TRUNCSTORE, MVT::i1, Promote); - // We cannot sextinreg(i1). Expand to shifts. setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand); @@ -743,7 +743,9 @@ // memory location argument. MVT::ValueType PtrVT = DAG.getTargetLoweringInfo().getPointerTy(); SDOperand FR = DAG.getFrameIndex(VarArgsFrameIndex, PtrVT); - return DAG.getStore(Op.getOperand(0), FR, Op.getOperand(1), Op.getOperand(2)); + SrcValueSDNode *SV = cast<SrcValueSDNode>(Op.getOperand(2)); + return DAG.getStore(Op.getOperand(0), FR, Op.getOperand(1), SV->getValue(), + SV->getOffset()); } static SDOperand LowerFORMAL_ARGUMENTS(SDOperand Op, SelectionDAG &DAG, @@ -898,8 +900,7 @@ unsigned VReg = RegMap->createVirtualRegister(&PPC::GPRCRegClass); MF.addLiveIn(GPR[GPR_idx], VReg); SDOperand Val = DAG.getCopyFromReg(Root, VReg, PtrVT); - SDOperand Store = DAG.getStore(Val.getValue(1), Val, FIN, - DAG.getSrcValue(NULL)); + SDOperand Store = DAG.getStore(Val.getValue(1), Val, FIN, NULL, 0); MemOps.push_back(Store); // Increment the address by four for the next argument to store SDOperand PtrOff = DAG.getConstant(MVT::getSizeInBits(PtrVT)/8, PtrVT); @@ -1033,8 +1034,7 @@ if (GPR_idx != NumGPRs) { RegsToPass.push_back(std::make_pair(GPR[GPR_idx++], Arg)); } else { - MemOpChains.push_back(DAG.getStore(Chain, Arg, PtrOff, - DAG.getSrcValue(NULL))); + MemOpChains.push_back(DAG.getStore(Chain, Arg, PtrOff, NULL, 0)); } ArgOffset += PtrByteSize; break; @@ -1044,8 +1044,7 @@ RegsToPass.push_back(std::make_pair(FPR[FPR_idx++], Arg)); if (isVarArg) { - SDOperand Store = DAG.getStore(Chain, Arg, PtrOff, - DAG.getSrcValue(NULL)); + SDOperand Store = DAG.getStore(Chain, Arg, PtrOff, NULL, 0); MemOpChains.push_back(Store); // Float varargs are always shadowed in available integer registers @@ -1071,8 +1070,7 @@ ++GPR_idx; } } else { - MemOpChains.push_back(DAG.getStore(Chain, Arg, PtrOff, - DAG.getSrcValue(NULL))); + MemOpChains.push_back(DAG.getStore(Chain, Arg, PtrOff, NULL, 0)); } if (isPPC64) ArgOffset += 8; @@ -2119,7 +2117,7 @@ // Store the input value into Value#0 of the stack slot. SDOperand Store = DAG.getStore(DAG.getEntryNode(), - Op.getOperand(0), FIdx,DAG.getSrcValue(NULL)); + Op.getOperand(0), FIdx, NULL, 0); // Load it out. return DAG.getLoad(Op.getValueType(), Store, FIdx, NULL, 0); } Index: llvm/lib/Target/PowerPC/PPCInstr64Bit.td diff -u llvm/lib/Target/PowerPC/PPCInstr64Bit.td:1.21 llvm/lib/Target/PowerPC/PPCInstr64Bit.td:1.22 --- llvm/lib/Target/PowerPC/PPCInstr64Bit.td:1.21 Mon Oct 9 15:57:25 2006 +++ llvm/lib/Target/PowerPC/PPCInstr64Bit.td Fri Oct 13 16:14:26 2006 @@ -304,24 +304,24 @@ // Truncating stores. def STB8 : DForm_3<38, (ops G8RC:$rS, memri:$src), "stb $rS, $src", LdStGeneral, - [(truncstore G8RC:$rS, iaddr:$src, i8)]>; + [(truncstorei8 G8RC:$rS, iaddr:$src)]>; def STH8 : DForm_3<44, (ops G8RC:$rS, memri:$src), "sth $rS, $src", LdStGeneral, - [(truncstore G8RC:$rS, iaddr:$src, i16)]>; + [(truncstorei16 G8RC:$rS, iaddr:$src)]>; def STW8 : DForm_3<36, (ops G8RC:$rS, memri:$src), "stw $rS, $src", LdStGeneral, - [(truncstore G8RC:$rS, iaddr:$src, i32)]>; + [(truncstorei32 G8RC:$rS, iaddr:$src)]>; def STBX8 : XForm_8<31, 215, (ops G8RC:$rS, memrr:$dst), "stbx $rS, $dst", LdStGeneral, - [(truncstore G8RC:$rS, xaddr:$dst, i8)]>, + [(truncstorei8 G8RC:$rS, xaddr:$dst)]>, PPC970_DGroup_Cracked; def STHX8 : XForm_8<31, 407, (ops G8RC:$rS, memrr:$dst), "sthx $rS, $dst", LdStGeneral, - [(truncstore G8RC:$rS, xaddr:$dst, i16)]>, + [(truncstorei16 G8RC:$rS, xaddr:$dst)]>, PPC970_DGroup_Cracked; def STWX8 : XForm_8<31, 151, (ops G8RC:$rS, memrr:$dst), "stwx $rS, $dst", LdStGeneral, - [(truncstore G8RC:$rS, xaddr:$dst, i32)]>, + [(truncstorei32 G8RC:$rS, xaddr:$dst)]>, PPC970_DGroup_Cracked; } Index: llvm/lib/Target/PowerPC/PPCInstrInfo.td diff -u llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.247 llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.248 --- llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.247 Fri Oct 13 14:10:34 2006 +++ llvm/lib/Target/PowerPC/PPCInstrInfo.td Fri Oct 13 16:14:26 2006 @@ -431,10 +431,10 @@ let isStore = 1, noResults = 1, PPC970_Unit = 2 in { def STB : DForm_3<38, (ops GPRC:$rS, memri:$src), "stb $rS, $src", LdStGeneral, - [(truncstore GPRC:$rS, iaddr:$src, i8)]>; + [(truncstorei8 GPRC:$rS, iaddr:$src)]>; def STH : DForm_3<44, (ops GPRC:$rS, memri:$src), "sth $rS, $src", LdStGeneral, - [(truncstore GPRC:$rS, iaddr:$src, i16)]>; + [(truncstorei16 GPRC:$rS, iaddr:$src)]>; def STW : DForm_3<36, (ops GPRC:$rS, memri:$src), "stw $rS, $src", LdStGeneral, [(store GPRC:$rS, iaddr:$src)]>; @@ -553,11 +553,11 @@ let isStore = 1, noResults = 1, PPC970_Unit = 2 in { def STBX : XForm_8<31, 215, (ops GPRC:$rS, memrr:$dst), "stbx $rS, $dst", LdStGeneral, - [(truncstore GPRC:$rS, xaddr:$dst, i8)]>, + [(truncstorei8 GPRC:$rS, xaddr:$dst)]>, PPC970_DGroup_Cracked; def STHX : XForm_8<31, 407, (ops GPRC:$rS, memrr:$dst), "sthx $rS, $dst", LdStGeneral, - [(truncstore GPRC:$rS, xaddr:$dst, i16)]>, + [(truncstorei16 GPRC:$rS, xaddr:$dst)]>, PPC970_DGroup_Cracked; def STWX : XForm_8<31, 151, (ops GPRC:$rS, memrr:$dst), "stwx $rS, $dst", LdStGeneral, _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits