summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2017-04-19 18:07:54 +0000
committerTim Northover <tnorthover@apple.com>2017-04-19 18:07:54 +0000
commitff168c68dc2abc725f50aa5d9a458641809d98d1 (patch)
tree4f862ed4b93ebdd7ff576ee7c7816f4f93f59d51 /llvm/lib
parentded7d59f0ea989d1878a5f997a25c5e1578bb437 (diff)
downloadbcm5719-llvm-ff168c68dc2abc725f50aa5d9a458641809d98d1.tar.gz
bcm5719-llvm-ff168c68dc2abc725f50aa5d9a458641809d98d1.zip
ARM: TLS calling convention doesn't preserve r9 or r12 on Darwin.
llvm-svn: 300726
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/ARM/ARMCallingConv.td6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/ARMCallingConv.td b/llvm/lib/Target/ARM/ARMCallingConv.td
index 7a7b7fede7c..bc7afdb7f1c 100644
--- a/llvm/lib/Target/ARM/ARMCallingConv.td
+++ b/llvm/lib/Target/ARM/ARMCallingConv.td
@@ -273,9 +273,9 @@ def CSR_iOS_SwiftError : CalleeSavedRegs<(sub CSR_iOS, R8)>;
def CSR_iOS_ThisReturn : CalleeSavedRegs<(add LR, R7, R6, R5, R4,
(sub CSR_AAPCS_ThisReturn, R9))>;
-def CSR_iOS_TLSCall : CalleeSavedRegs<(add LR, SP,
- (sequence "R%u", 12, 1),
- (sequence "D%u", 31, 0))>;
+def CSR_iOS_TLSCall
+ : CalleeSavedRegs<(add LR, SP, (sub(sequence "R%u", 12, 1), R9, R12),
+ (sequence "D%u", 31, 0))>;
// C++ TLS access function saves all registers except SP. Try to match
// the order of CSRs in CSR_iOS.
OpenPOWER on IntegriCloud