94 lines · plain
1# RUN: llvm-mc -triple=wasm32-unknown-unknown < %s | FileCheck %s2# RUN: llvm-mc -triple=wasm32-unknown-unknown -filetype=obj -o %t.o < %s3# RUN: obj2yaml %t.o | FileCheck %s --check-prefix=CHECK-OBJ4 5.globaltype __tls_base, i326 7tls_store:8 .functype tls_store (i32) -> ()9 # CHECK: global.get __tls_base10 # CHECK-NEXT: i32.const tls1@TLSREL11 # CHECK-NEXT: i32.add12 # CHECK-NEXT: local.get 013 # CHECK-NEXT: i32.store 014 global.get __tls_base15 i32.const tls1@TLSREL16 i32.add17 local.get 018 i32.store 019 end_function20 21tls_get_undefined:22 .functype tls_get_undefined (i32) -> (i32)23 global.get tls_undefined@GOT@TLS24 end_function25 26.section .tls.foo,"T",@27# CHECK: .tls.foo,"T",@28tls1:29 .int32 4230 .size tls1, 431 32.section custom_tls,"T",@33# CHECK: custom_tls,"T",@34tls2:35 .int32 4336 .size tls2, 437 38# CHECK-OBJ: - Type: CODE39# CHECK-OBJ-NEXT: Relocations:40# CHECK-OBJ-NEXT: - Type: R_WASM_GLOBAL_INDEX_LEB41# CHECK-OBJ-NEXT: Index: 142# CHECK-OBJ-NEXT: Offset: 0x443# CHECK-OBJ-NEXT: - Type: R_WASM_MEMORY_ADDR_TLS_SLEB44# CHECK-OBJ-NEXT: Index: 245# CHECK-OBJ-NEXT: Offset: 0xA46# CHECK-OBJ-NEXT: - Type: R_WASM_GLOBAL_INDEX_LEB47# CHECK-OBJ-NEXT: Index: 448# CHECK-OBJ-NEXT: Offset: 0x1949 50# CHECK-OBJ: - Type: CUSTOM51# CHECK-OBJ-NEXT: Name: linking52# CHECK-OBJ-NEXT: Version: 253# CHECK-OBJ-NEXT: SymbolTable:54# CHECK-OBJ-NEXT: - Index: 055# CHECK-OBJ-NEXT: Kind: FUNCTION56# CHECK-OBJ-NEXT: Name: tls_store57# CHECK-OBJ-NEXT: Flags: [ BINDING_LOCAL ]58# CHECK-OBJ-NEXT: Function: 059# CHECK-OBJ-NEXT: - Index: 160# CHECK-OBJ-NEXT: Kind: GLOBAL61# CHECK-OBJ-NEXT: Name: __tls_base62# CHECK-OBJ-NEXT: Flags: [ UNDEFINED ]63# CHECK-OBJ-NEXT: Global: 064# CHECK-OBJ-NEXT: - Index: 265# CHECK-OBJ-NEXT: Kind: DATA66# CHECK-OBJ-NEXT: Name: tls167# CHECK-OBJ-NEXT: Flags: [ BINDING_LOCAL, TLS ]68# CHECK-OBJ-NEXT: Segment: 069# CHECK-OBJ-NEXT: Size: 470# CHECK-OBJ-NEXT: - Index: 371# CHECK-OBJ-NEXT: Kind: FUNCTION72# CHECK-OBJ-NEXT: Name: tls_get_undefined73# CHECK-OBJ-NEXT: Flags: [ BINDING_LOCAL ]74# CHECK-OBJ-NEXT: Function: 175# CHECK-OBJ-NEXT: - Index: 476# CHECK-OBJ-NEXT: Kind: DATA77# CHECK-OBJ-NEXT: Name: tls_undefined78# CHECK-OBJ-NEXT: Flags: [ UNDEFINED, TLS ]79# CHECK-OBJ-NEXT: - Index: 580# CHECK-OBJ-NEXT: Kind: DATA81# CHECK-OBJ-NEXT: Name: tls282# CHECK-OBJ-NEXT: Flags: [ BINDING_LOCAL, TLS ]83# CHECK-OBJ-NEXT: Segment: 184# CHECK-OBJ-NEXT: Size: 485# CHECK-OBJ-NEXT: SegmentInfo:86# CHECK-OBJ-NEXT: - Index: 087# CHECK-OBJ-NEXT: Name: .tls.foo88# CHECK-OBJ-NEXT: Alignment: 089# CHECK-OBJ-NEXT: Flags: [ TLS ]90# CHECK-OBJ-NEXT: - Index: 191# CHECK-OBJ-NEXT: Name: custom_tls92# CHECK-OBJ-NEXT: Alignment: 093# CHECK-OBJ-NEXT: Flags: [ TLS ]94