diff options
-rw-r--r-- | lib/Target/PowerPC/PPCFastISel.cpp | 12 | ||||
-rw-r--r-- | lib/Target/PowerPC/PPCISelLowering.cpp | 6 | ||||
-rw-r--r-- | lib/Target/PowerPC/PPCISelLowering.h | 3 |
3 files changed, 6 insertions, 15 deletions
diff --git a/lib/Target/PowerPC/PPCFastISel.cpp b/lib/Target/PowerPC/PPCFastISel.cpp index 19d94137400..b00655b5022 100644 --- a/lib/Target/PowerPC/PPCFastISel.cpp +++ b/lib/Target/PowerPC/PPCFastISel.cpp @@ -1223,13 +1223,11 @@ bool PPCFastISel::SelectFPToI(const Instruction *I, bool IsSigned) { unsigned Opc; if (PPCSubTarget->hasSPE()) { - if (DstVT == MVT::i32) { - DestReg = createResultReg(&PPC::GPRCRegClass); - if (IsSigned) - Opc = InRC == &PPC::SPE4RCRegClass ? PPC::EFSCTSIZ : PPC::EFDCTSIZ; - else - Opc = InRC == &PPC::SPE4RCRegClass ? PPC::EFSCTUIZ : PPC::EFDCTUIZ; - } + DestReg = createResultReg(&PPC::GPRCRegClass); + if (IsSigned) + Opc = InRC == &PPC::SPE4RCRegClass ? PPC::EFSCTSIZ : PPC::EFDCTSIZ; + else + Opc = InRC == &PPC::SPE4RCRegClass ? PPC::EFSCTUIZ : PPC::EFDCTUIZ; } else { DestReg = createResultReg(&PPC::F8RCRegClass); if (DstVT == MVT::i32) diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp index 48355494afe..1e3e14c7114 100644 --- a/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/lib/Target/PowerPC/PPCISelLowering.cpp @@ -1237,12 +1237,6 @@ MVT PPCTargetLowering::getRegisterTypeForCallingConv(LLVMContext &Context, return PPCTargetLowering::getRegisterType(Context, VT); } -MVT PPCTargetLowering::getRegisterTypeForCallingConv(MVT VT) const { - if (Subtarget.hasSPE() && VT == MVT::f64) - return MVT::i32; - return PPCTargetLowering::getRegisterType(VT); -} - bool PPCTargetLowering::useSoftFloat() const { return Subtarget.useSoftFloat(); } diff --git a/lib/Target/PowerPC/PPCISelLowering.h b/lib/Target/PowerPC/PPCISelLowering.h index 11b974e42a0..9b8d6435515 100644 --- a/lib/Target/PowerPC/PPCISelLowering.h +++ b/lib/Target/PowerPC/PPCISelLowering.h @@ -874,9 +874,8 @@ namespace llvm { unsigned getNumRegistersForCallingConv(LLVMContext &Context, EVT VT) const override; - MVT getRegisterTypeForCallingConv(MVT VT) const; MVT getRegisterTypeForCallingConv(LLVMContext &Context, - EVT VT) const; + EVT VT) const override; private: struct ReuseLoadInfo { |