blob: 8fe6847d2a7782878f38bf8d1343521b8db31c5f [file] [log] [blame]
Sam Clegg70683b22018-01-24 03:29:47 +00001; RUN: llc -filetype=obj -o %t.o %s
Sam Clegg408064e2018-01-12 17:56:15 +00002; RUN: lld -flavor wasm %t.o -o %t.wasm
3; RUN: obj2yaml %t.wasm | FileCheck %s
4
Sam Clegg70683b22018-01-24 03:29:47 +00005target triple = "wasm32-unknown-unknown-wasm"
6
Sam Clegg408064e2018-01-12 17:56:15 +00007@start_alias = alias i32 (), i32 ()* @_start
8
9; Function Attrs: nounwind uwtable
10define i32 @_start() local_unnamed_addr #1 {
11entry:
12 ret i32 0
13}
14
15; CHECK: --- !WASM
Rui Ueyamab9b1a522018-01-24 00:22:53 +000016; CHECK-NEXT: FileHeader:
Sam Clegg408064e2018-01-12 17:56:15 +000017; CHECK-NEXT: Version: 0x00000001
Rui Ueyamab9b1a522018-01-24 00:22:53 +000018; CHECK-NEXT: Sections:
Sam Clegg408064e2018-01-12 17:56:15 +000019; CHECK-NEXT: - Type: TYPE
Rui Ueyamab9b1a522018-01-24 00:22:53 +000020; CHECK-NEXT: Signatures:
Sam Clegg408064e2018-01-12 17:56:15 +000021; CHECK-NEXT: - Index: 0
22; CHECK-NEXT: ReturnType: I32
Rui Ueyamab9b1a522018-01-24 00:22:53 +000023; CHECK-NEXT: ParamTypes:
Sam Clegg50686852018-01-12 18:35:13 +000024; CHECK-NEXT: - Index: 1
25; CHECK-NEXT: ReturnType: NORESULT
26; CHECK-NEXT: ParamTypes:
Sam Clegg408064e2018-01-12 17:56:15 +000027; CHECK-NEXT: - Type: FUNCTION
Sam Clegg50686852018-01-12 18:35:13 +000028; CHECK-NEXT: FunctionTypes: [ 0, 1 ]
Sam Clegg408064e2018-01-12 17:56:15 +000029; CHECK-NEXT: - Type: TABLE
Rui Ueyamab9b1a522018-01-24 00:22:53 +000030; CHECK-NEXT: Tables:
Sam Clegg408064e2018-01-12 17:56:15 +000031; CHECK-NEXT: - ElemType: ANYFUNC
Rui Ueyamab9b1a522018-01-24 00:22:53 +000032; CHECK-NEXT: Limits:
Sam Clegg408064e2018-01-12 17:56:15 +000033; CHECK-NEXT: Flags: [ HAS_MAX ]
34; CHECK-NEXT: Initial: 0x00000001
35; CHECK-NEXT: Maximum: 0x00000001
36; CHECK-NEXT: - Type: MEMORY
Rui Ueyamab9b1a522018-01-24 00:22:53 +000037; CHECK-NEXT: Memories:
Sam Clegg408064e2018-01-12 17:56:15 +000038; CHECK-NEXT: - Initial: 0x00000002
39; CHECK-NEXT: - Type: GLOBAL
Rui Ueyamab9b1a522018-01-24 00:22:53 +000040; CHECK-NEXT: Globals:
Sam Clegg408064e2018-01-12 17:56:15 +000041; CHECK-NEXT: - Index: 0
42; CHECK-NEXT: Type: I32
43; CHECK-NEXT: Mutable: true
Rui Ueyamab9b1a522018-01-24 00:22:53 +000044; CHECK-NEXT: InitExpr:
Sam Clegg408064e2018-01-12 17:56:15 +000045; CHECK-NEXT: Opcode: I32_CONST
46; CHECK-NEXT: Value: 66560
Sam Clegg51bcdc22018-01-17 01:34:31 +000047; CHECK-NEXT: - Index: 1
48; CHECK-NEXT: Type: I32
49; CHECK-NEXT: Mutable: false
Rui Ueyamab9b1a522018-01-24 00:22:53 +000050; CHECK-NEXT: InitExpr:
Sam Clegg51bcdc22018-01-17 01:34:31 +000051; CHECK-NEXT: Opcode: I32_CONST
52; CHECK-NEXT: Value: 66560
Sam Clegg408064e2018-01-12 17:56:15 +000053; CHECK-NEXT: - Type: EXPORT
Rui Ueyamab9b1a522018-01-24 00:22:53 +000054; CHECK-NEXT: Exports:
Sam Clegg408064e2018-01-12 17:56:15 +000055; CHECK-NEXT: - Name: memory
56; CHECK-NEXT: Kind: MEMORY
57; CHECK-NEXT: Index: 0
Sam Clegg0f0a4282018-01-20 01:44:45 +000058; CHECK-NEXT: - Name: start_alias
Sam Clegg408064e2018-01-12 17:56:15 +000059; CHECK-NEXT: Kind: FUNCTION
60; CHECK-NEXT: Index: 0
Sam Clegg0f0a4282018-01-20 01:44:45 +000061; CHECK-NEXT: - Name: _start
Sam Clegg408064e2018-01-12 17:56:15 +000062; CHECK-NEXT: Kind: FUNCTION
63; CHECK-NEXT: Index: 0
Sam Clegg51bcdc22018-01-17 01:34:31 +000064; CHECK-NEXT: - Name: __heap_base
65; CHECK-NEXT: Kind: GLOBAL
66; CHECK-NEXT: Index: 1
Sam Clegg408064e2018-01-12 17:56:15 +000067; CHECK-NEXT: - Type: CODE
Rui Ueyamab9b1a522018-01-24 00:22:53 +000068; CHECK-NEXT: Functions:
Sam Clegg408064e2018-01-12 17:56:15 +000069; CHECK-NEXT: - Index: 0
Rui Ueyamab9b1a522018-01-24 00:22:53 +000070; CHECK-NEXT: Locals:
Sam Clegg408064e2018-01-12 17:56:15 +000071; CHECK-NEXT: Body: 41000B
Sam Clegg50686852018-01-12 18:35:13 +000072; CHECK-NEXT: - Index: 1
Rui Ueyamab9b1a522018-01-24 00:22:53 +000073; CHECK-NEXT: Locals:
Sam Clegg50686852018-01-12 18:35:13 +000074; CHECK-NEXT: Body: 0B
Sam Clegg408064e2018-01-12 17:56:15 +000075; CHECK-NEXT: - Type: CUSTOM
76; CHECK-NEXT: Name: linking
77; CHECK-NEXT: DataSize: 0
78; CHECK-NEXT: - Type: CUSTOM
79; CHECK-NEXT: Name: name
Rui Ueyamab9b1a522018-01-24 00:22:53 +000080; CHECK-NEXT: FunctionNames:
Sam Clegg408064e2018-01-12 17:56:15 +000081; CHECK-NEXT: - Index: 0
Sam Clegg1963d712018-01-17 20:19:04 +000082; CHECK-NEXT: Name: _start
Sam Clegg50686852018-01-12 18:35:13 +000083; CHECK-NEXT: - Index: 1
84; CHECK-NEXT: Name: __wasm_call_ctors
Sam Clegg408064e2018-01-12 17:56:15 +000085; CHECK-NEXT: ...