diff options
| author | Tim Northover <tnorthover@apple.com> | 2016-01-07 09:03:03 +0000 |
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2016-01-07 09:03:03 +0000 |
| commit | bd41cf880c9f3a65c9366565fa4db2ddb6b57e1c (patch) | |
| tree | 7e3c25583cf5f2c507c14b0728f4c0957aa31e7e /llvm/lib/Target/ARM/ARMCallingConv.td | |
| parent | efc1a83a998556f1930c4072027ec83eb63465ce (diff) | |
| download | bcm5719-llvm-bd41cf880c9f3a65c9366565fa4db2ddb6b57e1c.tar.gz bcm5719-llvm-bd41cf880c9f3a65c9366565fa4db2ddb6b57e1c.zip | |
ARM: support TLS accesses on Darwin platforms
Darwin TLS accesses most closely resemble ELF's general-dynamic situation,
since they have to be able to handle all possible situations. The descriptors
and so on are obviously slightly different though.
llvm-svn: 257039
Diffstat (limited to 'llvm/lib/Target/ARM/ARMCallingConv.td')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMCallingConv.td | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMCallingConv.td b/llvm/lib/Target/ARM/ARMCallingConv.td index 23351641514..22ea166d540 100644 --- a/llvm/lib/Target/ARM/ARMCallingConv.td +++ b/llvm/lib/Target/ARM/ARMCallingConv.td @@ -225,6 +225,10 @@ def CSR_iOS : CalleeSavedRegs<(add LR, R7, R6, R5, R4, (sub CSR_AAPCS, R9))>; 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))>; + // 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 |

