1*a0f095ebSSam Clegg; Test that the --stack-first option places the stack at the start of linear
2*a0f095ebSSam Clegg; memory.  In this case the --stack-first option is being passed along with a
3*a0f095ebSSam Clegg; stack size of 512.  This means (since the stack grows down) the stack pointer
4*a0f095ebSSam Clegg; global should be initialized to 512.
5*a0f095ebSSam Clegg
6*a0f095ebSSam CleggRUN: llc -filetype=obj %p/Inputs/start.ll -o %t.o
7*a0f095ebSSam Clegg
8*a0f095ebSSam CleggRUN: wasm-ld --check-signatures -z stack-size=512 --stack-first --allow-undefined -o %t.wasm %t.o
9*a0f095ebSSam CleggRUN: obj2yaml %t.wasm | FileCheck %s
10*a0f095ebSSam Clegg
11*a0f095ebSSam CleggCHECK:        - Type:            GLOBAL
12*a0f095ebSSam CleggCHECK-NEXT:     Globals:
13*a0f095ebSSam CleggCHECK-NEXT:       - Index:           0
14*a0f095ebSSam CleggCHECK-NEXT:         Type:            I32
15*a0f095ebSSam CleggCHECK-NEXT:         Mutable:         true
16*a0f095ebSSam CleggCHECK-NEXT:         InitExpr:
17*a0f095ebSSam CleggCHECK-NEXT:           Opcode:          I32_CONST
18*a0f095ebSSam CleggCHECK-NEXT:           Value:           512
19*a0f095ebSSam CleggCHECK-NEXT:       - Index:           1
20*a0f095ebSSam CleggCHECK-NEXT:         Type:            I32
21*a0f095ebSSam CleggCHECK-NEXT:         Mutable:         false
22*a0f095ebSSam CleggCHECK-NEXT:         InitExpr:
23*a0f095ebSSam CleggCHECK-NEXT:           Opcode:          I32_CONST
24*a0f095ebSSam CleggCHECK-NEXT:           Value:           512
25*a0f095ebSSam CleggCHECK-NEXT:       - Index:           2
26*a0f095ebSSam CleggCHECK-NEXT:         Type:            I32
27*a0f095ebSSam CleggCHECK-NEXT:         Mutable:         false
28*a0f095ebSSam CleggCHECK-NEXT:         InitExpr:
29*a0f095ebSSam CleggCHECK-NEXT:           Opcode:          I32_CONST
30*a0f095ebSSam CleggCHECK-NEXT:           Value:           512
31*a0f095ebSSam CleggCHECK-NEXT:   - Type:            EXPORT
32*a0f095ebSSam CleggCHECK-NEXT:     Exports:
33*a0f095ebSSam CleggCHECK-NEXT:       - Name:            memory
34*a0f095ebSSam CleggCHECK-NEXT:         Kind:            MEMORY
35*a0f095ebSSam CleggCHECK-NEXT:         Index:           0
36*a0f095ebSSam CleggCHECK-NEXT:       - Name:            __heap_base
37*a0f095ebSSam CleggCHECK-NEXT:         Kind:            GLOBAL
38*a0f095ebSSam CleggCHECK-NEXT:         Index:           1
39*a0f095ebSSam CleggCHECK-NEXT:       - Name:            __data_end
40*a0f095ebSSam CleggCHECK-NEXT:         Kind:            GLOBAL
41*a0f095ebSSam CleggCHECK-NEXT:         Index:           2
42*a0f095ebSSam Clegg
43