1 ; We manually create these here if we're not linking against
2 ; the CRT which would usually provide these.
4 target triple = "i686-pc-windows-msvc"
6 %IMAGE_TLS_DIRECTORY32 = type {
7 i32, ; StartAddressOfRawData
8 i32, ; EndAddressOfRawData
10 i32, ; AddressOfCallBacks
15 @_tls_start = global i8 zeroinitializer, section ".tls"
16 @_tls_end = global i8 zeroinitializer, section ".tls$ZZZ"
17 @_tls_index = global i32 0
19 @_tls_used = global %IMAGE_TLS_DIRECTORY32 {
20 i32 ptrtoint (ptr @_tls_start to i32),
21 i32 ptrtoint (ptr @_tls_end to i32),
22 i32 ptrtoint (ptr @_tls_index to i32),
28 ; MSVC target uses a direct offset (0x58) for x86-64 but expects
29 ; __tls_array to hold the offset (0x2C) on x86.
30 module asm ".global __tls_array"
31 module asm "__tls_array = 44"