diff options
author | Sanjiv Gupta <sanjiv.gupta@microchip.com> | 2009-03-20 14:10:20 +0000 |
---|---|---|
committer | Sanjiv Gupta <sanjiv.gupta@microchip.com> | 2009-03-20 14:10:20 +0000 |
commit | e9d81f0ad8a7fa75776e1bc4cf396061d2ab041c (patch) | |
tree | b78c47a26a636847b721518bb64b3066a6042246 | |
parent | 91520ea5854d3506b95a3d7a9a2b1f7cbb9a1c87 (diff) | |
download | external_llvm-e9d81f0ad8a7fa75776e1bc4cf396061d2ab041c.zip external_llvm-e9d81f0ad8a7fa75776e1bc4cf396061d2ab041c.tar.gz external_llvm-e9d81f0ad8a7fa75776e1bc4cf396061d2ab041c.tar.bz2 |
Fixed comment for libcalls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67373 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/PIC16/PIC16ISelLowering.cpp | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/lib/Target/PIC16/PIC16ISelLowering.cpp b/lib/Target/PIC16/PIC16ISelLowering.cpp index bb59194..3ace482 100644 --- a/lib/Target/PIC16/PIC16ISelLowering.cpp +++ b/lib/Target/PIC16/PIC16ISelLowering.cpp @@ -191,18 +191,21 @@ MVT PIC16TargetLowering::getSetCCResultType(MVT ValType) const { return MVT::i8; } -/// FIXME: These three functions below should not be here if we change -/// the generic code to allow generting libcalls for I8 types as well. +/// The type legalizer framework of generating legalizer can generate libcalls +/// only when the operand/result types are illegal. +/// PIC16 needs to generate libcalls even for the legal types (i8) for some ops. +/// For example an arithmetic right shift. These functions are used to lower +/// such operations that generate libcall for legal types. void PIC16TargetLowering::setPIC16LibcallName(PIC16ISD::PIC16Libcall Call, const char *Name) { - PIC16LibcallNames[Call] = Name; + PIC16LibcallNames[Call] = Name; } const char * PIC16TargetLowering::getPIC16LibcallName(PIC16ISD::PIC16Libcall Call) { - return PIC16LibcallNames[Call]; + return PIC16LibcallNames[Call]; } SDValue @@ -211,23 +214,23 @@ PIC16TargetLowering::MakePIC16Libcall(PIC16ISD::PIC16Libcall Call, unsigned NumOps, bool isSigned, SelectionDAG &DAG, DebugLoc dl) { - TargetLowering::ArgListTy Args; - Args.reserve(NumOps); - - TargetLowering::ArgListEntry Entry; - for (unsigned i = 0; i != NumOps; ++i) { - Entry.Node = Ops[i]; - Entry.Ty = Entry.Node.getValueType().getTypeForMVT(); - Entry.isSExt = isSigned; - Entry.isZExt = !isSigned; - Args.push_back(Entry); - } - SDValue Callee = DAG.getExternalSymbol(getPIC16LibcallName(Call), MVT::i8); - - const Type *RetTy = RetVT.getTypeForMVT(); - std::pair<SDValue,SDValue> CallInfo = + TargetLowering::ArgListTy Args; + Args.reserve(NumOps); + + TargetLowering::ArgListEntry Entry; + for (unsigned i = 0; i != NumOps; ++i) { + Entry.Node = Ops[i]; + Entry.Ty = Entry.Node.getValueType().getTypeForMVT(); + Entry.isSExt = isSigned; + Entry.isZExt = !isSigned; + Args.push_back(Entry); + } + SDValue Callee = DAG.getExternalSymbol(getPIC16LibcallName(Call), MVT::i8); + + const Type *RetTy = RetVT.getTypeForMVT(); + std::pair<SDValue,SDValue> CallInfo = LowerCallTo(DAG.getEntryNode(), RetTy, isSigned, !isSigned, false, - false, CallingConv::C, false, Callee, Args, DAG, dl); + false, CallingConv::C, false, Callee, Args, DAG, dl); return CallInfo.first; } |