1# RUN: llvm-mc -triple=wasm32-unknown-unknown < %s | FileCheck %s 2# RUN: llvm-mc -triple=wasm32-unknown-unknown -filetype=obj < %s | obj2yaml | FileCheck -check-prefix=BIN %s 3 4# Tests creating an accessing actual wasm globals 5 6.globl read_global 7.globl write_global 8.globaltype foo_global, i32 9.globaltype global2, i64, immutable 10.globaltype global3, f32 11.globaltype global4, f64 12 13read_global: 14 .functype read_global () -> (i32) 15 global.get foo_global 16 end_function 17 18write_global: 19 .functype write_global (i32, i64, f32, f64) -> () 20 local.get 0 21 global.set foo_global 22 local.get 1 23 global.set global2 24 local.get 2 25 global.set global3 26 local.get 3 27 global.set global4 28 end_function 29 30foo_global: 31global2: 32global3: 33global4: 34 35# CHECK: .globl read_global 36# CNEXT: .globl write_global 37# CHECK: .globaltype foo_global, i32 38# CHECK: foo_global: 39 40# BIN: - Type: GLOBAL 41# BIN-NEXT: Globals: 42# BIN-NEXT: - Index: 0 43# BIN-NEXT: Type: I32 44# BIN-NEXT: Mutable: true 45# BIN-NEXT: InitExpr: 46# BIN-NEXT: Opcode: I32_CONST 47# BIN-NEXT: Value: 0 48# BIN-NEXT: - Index: 1 49# BIN-NEXT: Type: I64 50# BIN-NEXT: Mutable: false 51# BIN-NEXT: InitExpr: 52# BIN-NEXT: Opcode: I64_CONST 53# BIN-NEXT: Value: 0 54 55# BIN: - Type: CUSTOM 56# BIN-NEXT: Name: linking 57# BIN-NEXT: Version: 2 58# BIN-NEXT: SymbolTable: 59# BIN-NEXT: - Index: 0 60# BIN-NEXT: Kind: FUNCTION 61# BIN-NEXT: Name: read_global 62# BIN-NEXT: Flags: [ ] 63# BIN-NEXT: Function: 0 64# BIN-NEXT: - Index: 1 65# BIN-NEXT: Kind: FUNCTION 66# BIN-NEXT: Name: write_global 67# BIN-NEXT: Flags: [ ] 68# BIN-NEXT: Function: 1 69# BIN-NEXT: - Index: 2 70# BIN-NEXT: Kind: GLOBAL 71# BIN-NEXT: Name: foo_global 72# BIN-NEXT: Flags: [ BINDING_LOCAL ] 73# BIN-NEXT: Global: 0 74# BIN-NEXT: - Index: 3 75# BIN-NEXT: Kind: GLOBAL 76# BIN-NEXT: Name: global2 77# BIN-NEXT: Flags: [ BINDING_LOCAL ] 78# BIN-NEXT: Global: 1 79# BIN-NEXT: - Index: 4 80# BIN-NEXT: Kind: GLOBAL 81# BIN-NEXT: Name: global3 82# BIN-NEXT: Flags: [ BINDING_LOCAL ] 83# BIN-NEXT: Global: 2 84# BIN-NEXT: - Index: 5 85# BIN-NEXT: Kind: GLOBAL 86# BIN-NEXT: Name: global4 87# BIN-NEXT: Flags: [ BINDING_LOCAL ] 88# BIN-NEXT: Global: 3 89