summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorJuergen Ributzka <juergen@apple.com>2014-07-23 20:03:13 +0000
committerJuergen Ributzka <juergen@apple.com>2014-07-23 20:03:13 +0000
commit1b014504abb8d9f8d7b63b720e4bb581340d0ffb (patch)
tree18a130f7786f375c77d5dcea66241e8ae61749cc /llvm/lib
parentdb615d565dc30f01c8fe6da8f09be1793fea50b0 (diff)
downloadbcm5719-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.cpp8
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) {
OpenPOWER on IntegriCloud