1*70aa1118SSam Clegg# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s 2*70aa1118SSam Clegg# RUN: wasm-ld --relocatable -o %t.wasm %t.o 3*70aa1118SSam Clegg# RUN: obj2yaml %t.wasm | FileCheck %s 4*70aa1118SSam Clegg 5*70aa1118SSam Clegg.globaltype __stack_pointer, i32 6*70aa1118SSam Clegg 7*70aa1118SSam Clegg.globl _start 8*70aa1118SSam Clegg_start: 9*70aa1118SSam Clegg .functype _start () -> (i32) 10*70aa1118SSam Clegg global.get __stack_pointer 11*70aa1118SSam Clegg i32.const 16 12*70aa1118SSam Clegg i32.sub 13*70aa1118SSam Clegg drop 14*70aa1118SSam Clegg i32.const 0 15*70aa1118SSam Clegg end_function 16*70aa1118SSam Clegg 17*70aa1118SSam Clegg# CHECK: --- !WASM 18*70aa1118SSam Clegg# CHECK-NEXT: FileHeader: 19*70aa1118SSam Clegg# CHECK-NEXT: Version: 0x1 20*70aa1118SSam Clegg# CHECK-NEXT: Sections: 21*70aa1118SSam Clegg# CHECK-NEXT: - Type: TYPE 22*70aa1118SSam Clegg# CHECK-NEXT: Signatures: 23*70aa1118SSam Clegg# CHECK-NEXT: - Index: 0 24*70aa1118SSam Clegg# CHECK-NEXT: ParamTypes: 25*70aa1118SSam Clegg# CHECK-NEXT: ReturnTypes: 26*70aa1118SSam Clegg# CHECK-NEXT: - I32 27*70aa1118SSam Clegg# CHECK-NEXT: - Type: IMPORT 28*70aa1118SSam Clegg# CHECK-NEXT: Imports: 29*70aa1118SSam Clegg# CHECK-NEXT: - Module: env 30*70aa1118SSam Clegg# CHECK-NEXT: Field: __stack_pointer 31*70aa1118SSam Clegg# CHECK-NEXT: Kind: GLOBAL 32*70aa1118SSam Clegg# CHECK-NEXT: GlobalType: I32 33*70aa1118SSam Clegg# CHECK-NEXT: GlobalMutable: true 34*70aa1118SSam Clegg# CHECK-NEXT: - Type: FUNCTION 35*70aa1118SSam Clegg# CHECK-NEXT: FunctionTypes: [ 0 ] 36*70aa1118SSam Clegg# CHECK-NEXT: - Type: MEMORY 37*70aa1118SSam Clegg# CHECK-NEXT: Memories: 38*70aa1118SSam Clegg# CHECK-NEXT: - Minimum: 0x0 39*70aa1118SSam Clegg# CHECK-NEXT: - Type: CODE 40*70aa1118SSam Clegg# CHECK-NEXT: Relocations: 41*70aa1118SSam Clegg# CHECK-NEXT: - Type: R_WASM_GLOBAL_INDEX_LEB 42*70aa1118SSam Clegg# CHECK-NEXT: Index: 1 43*70aa1118SSam Clegg# CHECK-NEXT: Offset: 0x4 44*70aa1118SSam Clegg# CHECK-NEXT: Functions: 45*70aa1118SSam Clegg# CHECK-NEXT: - Index: 0 46*70aa1118SSam Clegg# CHECK-NEXT: Locals: 47*70aa1118SSam Clegg# CHECK-NEXT: Body: 23808080800041106B1A41000B 48*70aa1118SSam Clegg# CHECK-NEXT: - Type: CUSTOM 49*70aa1118SSam Clegg# CHECK-NEXT: Name: linking 50*70aa1118SSam Clegg# CHECK-NEXT: Version: 2 51*70aa1118SSam Clegg# CHECK-NEXT: SymbolTable: 52*70aa1118SSam Clegg# CHECK-NEXT: - Index: 0 53*70aa1118SSam Clegg# CHECK-NEXT: Kind: FUNCTION 54*70aa1118SSam Clegg# CHECK-NEXT: Name: _start 55*70aa1118SSam Clegg# CHECK-NEXT: Flags: [ ] 56*70aa1118SSam Clegg# CHECK-NEXT: Function: 0 57*70aa1118SSam Clegg# CHECK-NEXT: - Index: 1 58*70aa1118SSam Clegg# CHECK-NEXT: Kind: GLOBAL 59*70aa1118SSam Clegg# CHECK-NEXT: Name: __stack_pointer 60*70aa1118SSam Clegg# CHECK-NEXT: Flags: [ UNDEFINED ] 61*70aa1118SSam Clegg# CHECK-NEXT: Global: 0 62*70aa1118SSam Clegg# CHECK-NEXT: - Type: CUSTOM 63*70aa1118SSam Clegg# CHECK-NEXT: Name: name 64*70aa1118SSam Clegg# CHECK-NEXT: FunctionNames: 65*70aa1118SSam Clegg# CHECK-NEXT: - Index: 0 66*70aa1118SSam Clegg# CHECK-NEXT: Name: _start 67*70aa1118SSam Clegg# CHECK-NEXT: GlobalNames: 68*70aa1118SSam Clegg# CHECK-NEXT: - Index: 0 69*70aa1118SSam Clegg# CHECK-NEXT: Name: __stack_pointer 70*70aa1118SSam Clegg# CHECK-NEXT: ... 71