diff options
author | Juergen Ributzka <juergen@apple.com> | 2014-07-23 20:03:13 +0000 |
---|---|---|
committer | Juergen Ributzka <juergen@apple.com> | 2014-07-23 20:03:13 +0000 |
commit | 1b014504abb8d9f8d7b63b720e4bb581340d0ffb (patch) | |
tree | 18a130f7786f375c77d5dcea66241e8ae61749cc /llvm/lib | |
parent | db615d565dc30f01c8fe6da8f09be1793fea50b0 (diff) | |
download | bcm5719-llvm-1b014504abb8d9f8d7b63b720e4bb581340d0ffb.tar.gz bcm5719-llvm-1b014504abb8d9f8d7b63b720e4bb581340d0ffb.zip |
[FastISel][AArch64] Fix return type in FastLowerCall.
I used the wrong method to obtain the return type inside FinishCall. This fix
simply uses the return type from FastLowerCall, which we already determined to
be a valid type.
Reduced test case from Chad. Thanks.
llvm-svn: 213788
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64FastISel.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64FastISel.cpp b/llvm/lib/Target/AArch64/AArch64FastISel.cpp index f621246a7b3..c042447ce5b 100644 --- a/llvm/lib/Target/AArch64/AArch64FastISel.cpp +++ b/llvm/lib/Target/AArch64/AArch64FastISel.cpp @@ -138,7 +138,7 @@ private: CCAssignFn *CCAssignFnForCall(CallingConv::ID CC) const; bool ProcessCallArgs(CallLoweringInfo &CLI, SmallVectorImpl<MVT> &ArgVTs, unsigned &NumBytes); - bool FinishCall(CallLoweringInfo &CLI, unsigned NumBytes); + bool FinishCall(CallLoweringInfo &CLI, MVT RetVT, unsigned NumBytes); public: // Backend specific FastISel code. @@ -1270,9 +1270,9 @@ bool AArch64FastISel::ProcessCallArgs(CallLoweringInfo &CLI, return true; } -bool AArch64FastISel::FinishCall(CallLoweringInfo &CLI, unsigned NumBytes) { +bool AArch64FastISel::FinishCall(CallLoweringInfo &CLI, MVT RetVT, + unsigned NumBytes) { CallingConv::ID CC = CLI.CallConv; - MVT RetVT = MVT::getVT(CLI.RetTy); // Issue CALLSEQ_END unsigned AdjStackUp = TII.getCallFrameDestroyOpcode(); @@ -1370,7 +1370,7 @@ bool AArch64FastISel::FastLowerCall(CallLoweringInfo &CLI) { MIB.addRegMask(TRI.getCallPreservedMask(CC)); // Finish off the call including any return values. - return FinishCall(CLI, NumBytes); + return FinishCall(CLI, RetVT, NumBytes); } bool AArch64FastISel::IsMemCpySmall(uint64_t Len, unsigned Alignment) { |