diff options
| author | Manman Ren <manman.ren@gmail.com> | 2016-01-11 23:50:43 +0000 |
|---|---|---|
| committer | Manman Ren <manman.ren@gmail.com> | 2016-01-11 23:50:43 +0000 |
| commit | 1602605bf85f4fcc37aa2481a0e9ad7772444c47 (patch) | |
| tree | d8412907478e571a5746619948014b75b07d4a4a /llvm/lib/Target/ARM/ARMCallingConv.td | |
| parent | 26c6765bd6fe1f672b0a58f35a89083518d67465 (diff) | |
| download | bcm5719-llvm-1602605bf85f4fcc37aa2481a0e9ad7772444c47.tar.gz bcm5719-llvm-1602605bf85f4fcc37aa2481a0e9ad7772444c47.zip | |
CXX_FAST_TLS calling convention: Add support for ARM on Darwin.
rdar://9001553
llvm-svn: 257417
Diffstat (limited to 'llvm/lib/Target/ARM/ARMCallingConv.td')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMCallingConv.td | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMCallingConv.td b/llvm/lib/Target/ARM/ARMCallingConv.td index 22ea166d540..e386a2e5cff 100644 --- a/llvm/lib/Target/ARM/ARMCallingConv.td +++ b/llvm/lib/Target/ARM/ARMCallingConv.td @@ -229,6 +229,11 @@ def CSR_iOS_TLSCall : CalleeSavedRegs<(add LR, SP, (sequence "R%u", 12, 1), (sequence "D%u", 31, 0))>; +// C++ TLS access function saves all registers except SP. Try to match +// the order of CSRs in CSR_iOS. +def CSR_iOS_CXX_TLS : CalleeSavedRegs<(add CSR_iOS, (sequence "R%u", 12, 1), + (sequence "D%u", 31, 0))>; + // The "interrupt" attribute is used to generate code that is acceptable in // exception-handlers of various kinds. It makes us use a different return // instruction (handled elsewhere) and affects which registers we must return to |

