| # RUN: llvm-mc -triple=wasm32-unknown-unknown < %s | FileCheck %s |
| # RUN: llvm-mc -triple=wasm32-unknown-unknown -filetype=obj < %s | obj2yaml | FileCheck -check-prefix=BIN %s |
| |
| # Tests creating an accessing actual wasm globals |
| |
| .globl read_global |
| .globl write_global |
| .globaltype foo_global, i32 |
| .globaltype global2, i64, immutable |
| .globaltype global3, f32 |
| .globaltype global4, f64 |
| |
| read_global: |
| .functype read_global () -> (i32) |
| global.get foo_global |
| end_function |
| |
| write_global: |
| .functype write_global (i32, i64, f32, f64) -> () |
| local.get 0 |
| global.set foo_global |
| local.get 1 |
| global.set global2 |
| local.get 2 |
| global.set global3 |
| local.get 3 |
| global.set global4 |
| end_function |
| |
| foo_global: |
| global2: |
| global3: |
| global4: |
| |
| # CHECK: .globl read_global |
| # CNEXT: .globl write_global |
| # CHECK: .globaltype foo_global, i32 |
| # CHECK: foo_global: |
| |
| # BIN: - Type: GLOBAL |
| # BIN-NEXT: Globals: |
| # BIN-NEXT: - Index: 0 |
| # BIN-NEXT: Type: I32 |
| # BIN-NEXT: Mutable: true |
| # BIN-NEXT: InitExpr: |
| # BIN-NEXT: Opcode: I32_CONST |
| # BIN-NEXT: Value: 0 |
| # BIN-NEXT: - Index: 1 |
| # BIN-NEXT: Type: I64 |
| # BIN-NEXT: Mutable: false |
| # BIN-NEXT: InitExpr: |
| # BIN-NEXT: Opcode: I64_CONST |
| # BIN-NEXT: Value: 0 |
| |
| # BIN: - Type: CUSTOM |
| # BIN-NEXT: Name: linking |
| # BIN-NEXT: Version: 2 |
| # BIN-NEXT: SymbolTable: |
| # BIN-NEXT: - Index: 0 |
| # BIN-NEXT: Kind: FUNCTION |
| # BIN-NEXT: Name: read_global |
| # BIN-NEXT: Flags: [ ] |
| # BIN-NEXT: Function: 0 |
| # BIN-NEXT: - Index: 1 |
| # BIN-NEXT: Kind: FUNCTION |
| # BIN-NEXT: Name: write_global |
| # BIN-NEXT: Flags: [ ] |
| # BIN-NEXT: Function: 1 |
| # BIN-NEXT: - Index: 2 |
| # BIN-NEXT: Kind: GLOBAL |
| # BIN-NEXT: Name: foo_global |
| # BIN-NEXT: Flags: [ BINDING_LOCAL ] |
| # BIN-NEXT: Global: 0 |
| # BIN-NEXT: - Index: 3 |
| # BIN-NEXT: Kind: GLOBAL |
| # BIN-NEXT: Name: global2 |
| # BIN-NEXT: Flags: [ BINDING_LOCAL ] |
| # BIN-NEXT: Global: 1 |
| # BIN-NEXT: - Index: 4 |
| # BIN-NEXT: Kind: GLOBAL |
| # BIN-NEXT: Name: global3 |
| # BIN-NEXT: Flags: [ BINDING_LOCAL ] |
| # BIN-NEXT: Global: 2 |
| # BIN-NEXT: - Index: 5 |
| # BIN-NEXT: Kind: GLOBAL |
| # BIN-NEXT: Name: global4 |
| # BIN-NEXT: Flags: [ BINDING_LOCAL ] |
| # BIN-NEXT: Global: 3 |