forked from OSchip/llvm-project
45 lines
1.2 KiB
ArmAsm
45 lines
1.2 KiB
ArmAsm
# RUN: llvm-mc -triple=wasm32-unknown-unknown -filetype=obj -o %t.o %s
|
|
# RUN: wasm-ld %t.o -o %t.wasm
|
|
# RUN: obj2yaml %t.wasm | FileCheck %s
|
|
|
|
# Tests use of externref type, including storing it in a global
|
|
|
|
.globaltype my_global, externref
|
|
|
|
.globl read_externref
|
|
read_externref:
|
|
.functype read_externref () -> (externref)
|
|
global.get my_global
|
|
end_function
|
|
|
|
.globl write_externref
|
|
write_externref:
|
|
.functype write_externref (externref) -> ()
|
|
local.get 0
|
|
global.set my_global
|
|
end_function
|
|
|
|
my_global:
|
|
|
|
.globl _start
|
|
_start:
|
|
.functype _start () -> ()
|
|
call read_externref
|
|
call write_externref
|
|
end_function
|
|
|
|
# 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: 66560
|
|
# CHECK-NEXT: - Index: 1
|
|
# CHECK-NEXT: Type: EXTERNREF
|
|
# CHECK-NEXT: Mutable: true
|
|
# CHECK-NEXT: InitExpr:
|
|
# CHECK-NEXT: Opcode: REF_NULL
|
|
# CHECK-NEXT: Type: EXTERNREF
|