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