summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMBaseRegisterInfo.cpp
diff options
context:
space:
mode:
authorStephen Lin <stephenwlin@gmail.com>2013-06-26 21:42:14 +0000
committerStephen Lin <stephenwlin@gmail.com>2013-06-26 21:42:14 +0000
commit6b97ebe9a32342207b24a5f73ebbf3070ec8d189 (patch)
tree386499735bc8224b12ff4827ebd1b39c9e234780 /lib/Target/ARM/ARMBaseRegisterInfo.cpp
parent02e75021d80bb068d0178f1e4fdd0a4fb36b9811 (diff)
downloadllvm-6b97ebe9a32342207b24a5f73ebbf3070ec8d189.tar.gz
llvm-6b97ebe9a32342207b24a5f73ebbf3070ec8d189.tar.bz2
llvm-6b97ebe9a32342207b24a5f73ebbf3070ec8d189.tar.xz
ARM: Proactively ensure that the LowerCallResult hack for 'this'-returns is not used for incompatible calling conventions.
(Currently, ARM 'this'-returns are handled in the standard calling convention case by treating R0 as preserved and doing some extra magic in LowerCallResult; this may not apply to calling conventions added in the future so this patch provides and documents an interface for indicating such) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185024 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMBaseRegisterInfo.cpp')
-rw-r--r--lib/Target/ARM/ARMBaseRegisterInfo.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/lib/Target/ARM/ARMBaseRegisterInfo.cpp
index 3ba3b625d7..0e1e50e529 100644
--- a/lib/Target/ARM/ARMBaseRegisterInfo.cpp
+++ b/lib/Target/ARM/ARMBaseRegisterInfo.cpp
@@ -75,6 +75,9 @@ const uint32_t*
ARMBaseRegisterInfo::getThisReturnPreservedMask(CallingConv::ID) const {
return (STI.isTargetIOS() && !STI.isAAPCS_ABI())
? CSR_iOS_ThisReturn_RegMask : CSR_AAPCS_ThisReturn_RegMask;
+ // This should return NULL in the case of any calling convention that does
+ // not use the same register for an i32 first argument and an i32 return
+ // value
}
const uint32_t*