diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-07-25 14:42:11 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-07-25 14:42:11 +0000 |
commit | 080bebd212869135dbae80bb721f38f4eefeee12 (patch) | |
tree | 9e88abc432d7db3a9fdf80ad82129ea80b55161b /llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp | |
parent | 8031238017a5aa0294168ecec4ef90fc1b3b76b4 (diff) | |
download | bcm5719-llvm-080bebd212869135dbae80bb721f38f4eefeee12.tar.gz bcm5719-llvm-080bebd212869135dbae80bb721f38f4eefeee12.zip |
[Hexagon] Add target feature to generate long calls
llvm-svn: 276638
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp b/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp index 00dfed75499..10730536080 100644 --- a/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp +++ b/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp @@ -44,14 +44,17 @@ SDValue HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy( const char *SpecialMemcpyName = "__hexagon_memcpy_likely_aligned_min32bytes_mult8bytes"; + const MachineFunction &MF = DAG.getMachineFunction(); + bool LongCalls = MF.getSubtarget<HexagonSubtarget>().useLongCalls(); + unsigned Flags = LongCalls ? HexagonII::HMOTF_ConstExtended : 0; TargetLowering::CallLoweringInfo CLI(DAG); CLI.setDebugLoc(dl) .setChain(Chain) .setCallee(TLI.getLibcallCallingConv(RTLIB::MEMCPY), Type::getVoidTy(*DAG.getContext()), - DAG.getTargetExternalSymbol( - SpecialMemcpyName, TLI.getPointerTy(DAG.getDataLayout())), + DAG.getTargetExternalSymbol(SpecialMemcpyName, + TLI.getPointerTy(DAG.getDataLayout()), Flags), std::move(Args)) .setDiscardResult(); |