1# RUN: llvm-mc -triple=wasm32-unknown-unknown < %s | FileCheck %s 2# RUN: llvm-mc -triple=wasm32-unknown-unknown -filetype=obj -o %t.o < %s 3# RUN: obj2yaml %t.o | FileCheck %s --check-prefix=CHECK-OBJ 4 5tls_store: 6 .functype tls_store (i32) -> () 7 # CHECK: global.get __tls_base 8 # CHECK-NEXT: i32.const tls@TLSREL 9 # CHECK-NEXT: i32.add 10 # CHECK-NEXT: i32.store 0 11 global.get __tls_base 12 i32.const tls@TLSREL 13 i32.add 14 i32.store 0 15 end_function 16 17 18# CHECK-OBJ: - Type: CODE 19# CHECK-OBJ-NEXT: Relocations: 20# CHECK-OBJ-NEXT: - Type: R_WASM_MEMORY_ADDR_LEB 21# CHECK-OBJ-NEXT: Index: 1 22# CHECK-OBJ-NEXT: Offset: 0x4 23# CHECK-OBJ-NEXT: - Type: R_WASM_MEMORY_ADDR_TLS_SLEB 24# CHECK-OBJ-NEXT: Index: 2 25# CHECK-OBJ-NEXT: Offset: 0xA 26 27# CHECK-OBJ: - Type: CUSTOM 28# CHECK-OBJ-NEXT: Name: linking 29# CHECK-OBJ-NEXT: Version: 2 30# CHECK-OBJ-NEXT: SymbolTable: 31# CHECK-OBJ-NEXT: - Index: 0 32# CHECK-OBJ-NEXT: Kind: FUNCTION 33# CHECK-OBJ-NEXT: Name: tls_store 34# CHECK-OBJ-NEXT: Flags: [ BINDING_LOCAL ] 35# CHECK-OBJ-NEXT: Function: 0 36# CHECK-OBJ-NEXT: - Index: 1 37# CHECK-OBJ-NEXT: Kind: DATA 38# CHECK-OBJ-NEXT: Name: __tls_base 39# CHECK-OBJ-NEXT: Flags: [ UNDEFINED ] 40# CHECK-OBJ-NEXT: - Index: 2 41# CHECK-OBJ-NEXT: Kind: DATA 42# CHECK-OBJ-NEXT: Name: tls 43# CHECK-OBJ-NEXT: Flags: [ UNDEFINED ] 44