#objdump: -dr
#name: TLS
# This test is only valid on ELF based ports.
#not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
# VxWorks needs a special variant of this file.
#skip: *-*-vxworks*

# Test generation of TLS relocations

.*: +file format .*arm.*

Disassembly of section .text:

0+00 <arm_fn>:
   0:	e1a00000 	nop			; .*
			0: R_ARM_TLS_DESCSEQ	af
   4:	e59f0014 	ldr	r0, \[pc, #20\]	; 20 .*
   8:	fa000000 	blx	8 <ae\+.*>
			8: R_ARM_TLS_CALL	ae
   c:	e1a00000 	nop			; .*
0+10 <.arm_pool>:
  10:	00000008 	.word	0x00000008
			10: R_ARM_TLS_GD32	aa
  14:	0000000c 	.word	0x0000000c
			14: R_ARM_TLS_LDM32	ab
  18:	00000010 	.word	0x00000010
			18: R_ARM_TLS_IE32	ac
  1c:	00000000 	.word	0x00000000
			1c: R_ARM_TLS_LE32	ad
  20:	00000018 	.word	0x00000018
			20: R_ARM_TLS_GOTDESC	ae
0+24 <thumb_fn>:
  24:	46c0      	nop			; .*
  26:	46c0      	nop			; .*
			26: R_ARM_THM_TLS_DESCSEQ	tf
  28:	4805      	ldr	r0, \[pc, #20\]	; \(40 .*\)
  2a:	f000 e800 	blx	4 <te\+0x4>
			2a: R_ARM_THM_TLS_CALL	te
  2e:	46c0      	nop			; .*
  30:	00000002 	.word	0x00000002
			30: R_ARM_TLS_GD32	ta
  34:	00000006 	.word	0x00000006
			34: R_ARM_TLS_LDM32	tb
  38:	0000000a 	.word	0x0000000a
			38: R_ARM_TLS_IE32	tc
  3c:	00000000 	.word	0x00000000
			3c: R_ARM_TLS_LE32	td
  40:	00000017 	.word	0x00000017
			40: R_ARM_TLS_GOTDESC	te
0+44 <foo>:
  44:	fffffff4 	.word	0xfffffff4
			44: R_ARM_TLS_LE32	tbase
  48:	fffffff8 	.word	0xfffffff8
			48: R_ARM_TLS_LE32	tbase
  4c:	fffffffc 	.word	0xfffffffc
			4c: R_ARM_TLS_LE32	tbase
  50:	00000000 	.word	0x00000000
			50: R_ARM_TLS_LE32	tbase
  54:	00000004 	.word	0x00000004
			54: R_ARM_TLS_LE32	tbase
  58:	00000008 	.word	0x00000008
			58: R_ARM_TLS_LE32	tbase
  5c:	0000000c 	.word	0x0000000c
			5c: R_ARM_TLS_LE32	tbase
  60:	00000000 	.word	0x00000000
			60: R_ARM_TLS_LE32	tbase
#pass
