146 lines
5.0 KiB
ArmAsm
146 lines
5.0 KiB
ArmAsm
// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
|
|
|
|
// Test that all symbols are of type STT_TLS.
|
|
|
|
movl foo1@NTPOFF(%eax), %eax
|
|
movl foo2@GOTNTPOFF(%eax), %eax
|
|
movl foo3@TLSGD(%eax), %eax
|
|
movl foo4@TLSLDM(%eax), %eax
|
|
movl foo5@TPOFF(%eax), %eax
|
|
movl foo6@DTPOFF(%eax), %eax
|
|
movl foo7@INDNTPOFF, %eax
|
|
.long foo8@NTPOFF
|
|
.long foo9@GOTNTPOFF
|
|
.long fooA@TLSGD
|
|
.long fooB@TLSLDM
|
|
.long fooC@TPOFF
|
|
.long fooD@DTPOFF
|
|
.long fooE@INDNTPOFF
|
|
|
|
// CHECK: (('st_name', 0x00000001) # 'foo1'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 6
|
|
// CHECK-NEXT: (('st_name', 0x00000006) # 'foo2'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 7
|
|
// CHECK-NEXT: (('st_name', 0x0000000b) # 'foo3'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 8
|
|
// CHECK-NEXT: (('st_name', 0x00000010) # 'foo4'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 9
|
|
// CHECK-NEXT: (('st_name', 0x00000015) # 'foo5'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 10
|
|
// CHECK-NEXT: (('st_name', 0x0000001a) # 'foo6'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 11
|
|
// CHECK-NEXT: (('st_name', 0x0000001f) # 'foo7'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 12
|
|
// CHECK-NEXT: (('st_name', 0x00000024) # 'foo8'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 13
|
|
// CHECK-NEXT: (('st_name', 0x00000029) # 'foo9'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 14
|
|
// CHECK-NEXT: (('st_name', 0x0000002e) # 'fooA'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 15
|
|
// CHECK-NEXT: (('st_name', 0x00000033) # 'fooB'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 16
|
|
// CHECK-NEXT: (('st_name', 0x00000038) # 'fooC'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 17
|
|
// CHECK-NEXT: (('st_name', 0x0000003d) # 'fooD'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: # Symbol 18
|
|
// CHECK-NEXT: (('st_name', 0x00000042) # 'fooE'
|
|
// CHECK-NEXT: ('st_value', 0x00000000)
|
|
// CHECK-NEXT: ('st_size', 0x00000000)
|
|
// CHECK-NEXT: ('st_bind', 0x1)
|
|
// CHECK-NEXT: ('st_type', 0x6)
|
|
// CHECK-NEXT: ('st_other', 0x00)
|
|
// CHECK-NEXT: ('st_shndx', 0x0000)
|
|
// CHECK-NEXT: ),
|
|
|