diff options
author | Eric Christopher <echristo@apple.com> | 2010-09-30 22:34:19 +0000 |
---|---|---|
committer | Eric Christopher <echristo@apple.com> | 2010-09-30 22:34:19 +0000 |
commit | 086378597df590e6401abf90d0b5edb09bbaa297 (patch) | |
tree | de6f86a79f1a5c27bd261b450bdccd01ade804be | |
parent | 929910925d7e694d966846c609eedf837ad4462f (diff) |
Movement and cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115225 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/ARMFastISel.cpp | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/lib/Target/ARM/ARMFastISel.cpp b/lib/Target/ARM/ARMFastISel.cpp index 26c3c5b833..b4fd1b402c 100644 --- a/lib/Target/ARM/ARMFastISel.cpp +++ b/lib/Target/ARM/ARMFastISel.cpp @@ -1003,6 +1003,32 @@ bool ARMFastISel::SelectFPToSI(const Instruction *I) { return true; } +bool ARMFastISel::SelectSDiv(const Instruction *I) { + EVT VT; + const Type *Ty = I->getType(); + if (!isTypeLegal(Ty, VT)) + return false; + + // If we have integer div support we should have selected this automagically. + // In case we have a real miss go ahead and return false and we'll pick + // it up later. + if (Subtarget->hasDivide()) return false; + + // Otherwise emit a libcall. + RTLIB::Libcall LC = RTLIB::UNKNOWN_LIBCALL; + if (VT == MVT::i16) + LC = RTLIB::SDIV_I16; + else if (VT == MVT::i32) + LC = RTLIB::SDIV_I32; + else if (VT == MVT::i64) + LC = RTLIB::SDIV_I64; + else if (VT == MVT::i128) + LC = RTLIB::SDIV_I128; + assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SDIV!"); + + return ARMEmitLibcall(I, LC); +} + bool ARMFastISel::SelectBinaryOp(const Instruction *I, unsigned ISDOpcode) { EVT VT = TLI.getValueType(I->getType(), true); @@ -1232,32 +1258,6 @@ bool ARMFastISel::ARMEmitLibcall(const Instruction *I, RTLIB::Libcall Call) { return true; } -bool ARMFastISel::SelectSDiv(const Instruction *I) { - EVT VT; - const Type *Ty = I->getType(); - if (!isTypeLegal(Ty, VT)) - return false; - - // If we have integer div support we should have selected this automagically. - // In case we have a real miss go ahead and return false and we'll pick - // it up later. - if (Subtarget->hasDivide()) return false; - - // Otherwise emit a libcall. - RTLIB::Libcall LC = RTLIB::UNKNOWN_LIBCALL; - if (VT == MVT::i16) - LC = RTLIB::SDIV_I16; - else if (VT == MVT::i32) - LC = RTLIB::SDIV_I32; - else if (VT == MVT::i64) - LC = RTLIB::SDIV_I64; - else if (VT == MVT::i128) - LC = RTLIB::SDIV_I128; - assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SDIV!"); - - return ARMEmitLibcall(I, LC); -} - bool ARMFastISel::SelectCall(const Instruction *I) { const CallInst *CI = cast<CallInst>(I); const Value *Callee = CI->getCalledValue(); |