|  | ; Test that the --stack-first option places the stack at the start of linear | 
|  | ; memory.  In this case the --stack-first option is being passed along with a | 
|  | ; stack size of 512.  This means (since the stack grows down) the stack pointer | 
|  | ; global should be initialized to 512. | 
|  | ; Also test that __heap_base is still aligned with the --stack-first option. | 
|  |  | 
|  | RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/stack-first.s -o %t.o | 
|  | RUN: wasm-ld -z stack-size=512 --stack-first --export=__data_end --export=__heap_base --export=someByte -o %t.wasm %t.o | 
|  | RUN: obj2yaml %t.wasm | FileCheck %s | 
|  |  | 
|  | CHECK:        - Type:            GLOBAL | 
|  | CHECK-NEXT:     Globals: | 
|  | CHECK-NEXT:       - Index:           0 | 
|  | CHECK-NEXT:         Type:            I32 | 
|  | CHECK-NEXT:         Mutable:         true | 
|  | CHECK-NEXT:         InitExpr: | 
|  | CHECK-NEXT:           Opcode:          I32_CONST | 
|  | CHECK-NEXT:           Value:           512 | 
|  | CHECK-NEXT:       - Index:           1 | 
|  | CHECK-NEXT:         Type:            I32 | 
|  | CHECK-NEXT:         Mutable:         false | 
|  | CHECK-NEXT:         InitExpr: | 
|  | CHECK-NEXT:           Opcode:          I32_CONST | 
|  | CHECK-NEXT:           Value:           512 | 
|  | CHECK-NEXT:       - Index:           2 | 
|  | CHECK-NEXT:         Type:            I32 | 
|  | CHECK-NEXT:         Mutable:         false | 
|  | CHECK-NEXT:         InitExpr: | 
|  | CHECK-NEXT:           Opcode:          I32_CONST | 
|  | CHECK-NEXT:           Value:           513 | 
|  | CHECK-NEXT:       - Index:           3 | 
|  | CHECK-NEXT:         Type:            I32 | 
|  | CHECK-NEXT:         Mutable:         false | 
|  | CHECK-NEXT:         InitExpr: | 
|  | CHECK-NEXT:           Opcode:          I32_CONST | 
|  | CHECK-NEXT:           Value:           528 | 
|  | CHECK-NEXT:   - Type:            EXPORT | 
|  | CHECK-NEXT:     Exports: | 
|  | CHECK-NEXT:       - Name:            memory | 
|  | CHECK-NEXT:         Kind:            MEMORY | 
|  | CHECK-NEXT:         Index:           0 | 
|  | CHECK-NEXT:       - Name:            _start | 
|  | CHECK-NEXT:         Kind:            FUNCTION | 
|  | CHECK-NEXT:         Index:           0 | 
|  | CHECK-NEXT:       - Name:            someByte | 
|  | CHECK-NEXT:         Kind:            GLOBAL | 
|  | CHECK-NEXT:         Index:           1 | 
|  | CHECK-NEXT:       - Name:            __data_end | 
|  | CHECK-NEXT:         Kind:            GLOBAL | 
|  | CHECK-NEXT:         Index:           2 | 
|  | CHECK-NEXT:       - Name:            __heap_base | 
|  | CHECK-NEXT:         Kind:            GLOBAL | 
|  | CHECK-NEXT:         Index:           3 |