llvm/test/MC/ARM/directive-tlsdescseq.s
Saleem Abdulrasool 2c9ed5d050 ARM: suuport .tlsdescseq directive
This enhances the ARMAsmParser to handle .tlsdescseq directives.  This is a
slightly special relocation.  We must be able to generate them, but not consume
them in assembly.  The relocation is meant to assist the linker in generating a
TLS descriptor sequence.  The ELF target streamer is enhanced to append
additional fixups into the current segment and that is used to emit the new
R_ARM_TLS_DESCSEQ relocations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200448 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-30 04:02:47 +00:00

34 lines
862 B
ArmAsm

@ RUN: llvm-mc -triple armv7-linux-gnu -filetype obj -o - %s | llvm-readobj -r \
@ RUN: | FileCheck %s
@ RUN: llvm-mc -triple armv7-linux-gnu -filetype asm -o - %s \
@ RUN: | FileCheck -check-prefix CHECK-ASM %s
.type tlsdescseq,%function
tlsdescseq:
ldr r1, [pc, #8]
1:
.tlsdescseq variable
add r2, pc, r1
.tlsdescseq variable
ldr r3, [r1, #4]
.tlsdescseq variable
blx r3
2:
.word variable(tlsdesc) + (. - 1b)
@ CHECK: Relocations [
@ CHECK: 0x4 R_ARM_TLS_DESCSEQ variable 0x0
@ CHECK: 0x8 R_ARM_TLS_DESCSEQ variable 0x0
@ CHECK: 0xC R_ARM_TLS_DESCSEQ variable 0x0
@ CHECK: 0x10 R_ARM_TLS_GOTDESC variable 0x0
@ CHECK: ]
@ CHECK-ASM: ldr r1, [pc, #8]
@ CHECK-ASM: .tlsdescseq variable
@ CHECK-ASM: add r2, pc, r1
@ CHECK-ASM: .tlsdescseq variable
@ CHECK-ASM: ldr r3, [r1, #4]
@ CHECK-ASM: .tlsdescseq variable
@ CHECK-ASM: blx r3