externref.s
1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 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