blob: dc6019883aff7f73886bb002a0a6ef938b42cf7b [file] [log] [blame]
Sam Clegg70683b22018-01-24 03:29:47 +00001; RUN: llc -filetype=obj -o %t.o %s
Sam Clegg279c8502018-02-02 00:30:03 +00002; RUN: lld -flavor wasm --check-signatures %t.o -o %t.wasm
Sam Clegg408064e2018-01-12 17:56:15 +00003; RUN: obj2yaml %t.wasm | FileCheck %s
4
Sam Clegg70683b22018-01-24 03:29:47 +00005target triple = "wasm32-unknown-unknown-wasm"
6
Sam Clegg279c8502018-02-02 00:30:03 +00007@start_alias = alias void (), void ()* @_start
Sam Clegg408064e2018-01-12 17:56:15 +00008
9; Function Attrs: nounwind uwtable
Sam Clegg279c8502018-02-02 00:30:03 +000010define void @_start() local_unnamed_addr #1 {
Sam Clegg408064e2018-01-12 17:56:15 +000011entry:
Sam Clegg279c8502018-02-02 00:30:03 +000012 ret void
Sam Clegg408064e2018-01-12 17:56:15 +000013}
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
Sam Clegg279c8502018-02-02 00:30:03 +000022; CHECK-NEXT: ReturnType: NORESULT
Rui Ueyamab9b1a522018-01-24 00:22:53 +000023; CHECK-NEXT: ParamTypes:
Sam Clegg408064e2018-01-12 17:56:15 +000024; CHECK-NEXT: - Type: FUNCTION
Sam Clegg279c8502018-02-02 00:30:03 +000025; CHECK-NEXT: FunctionTypes: [ 0, 0 ]
Sam Clegg408064e2018-01-12 17:56:15 +000026; CHECK-NEXT: - Type: TABLE
Rui Ueyamab9b1a522018-01-24 00:22:53 +000027; CHECK-NEXT: Tables:
Sam Clegg408064e2018-01-12 17:56:15 +000028; CHECK-NEXT: - ElemType: ANYFUNC
Rui Ueyamab9b1a522018-01-24 00:22:53 +000029; CHECK-NEXT: Limits:
Sam Clegg408064e2018-01-12 17:56:15 +000030; CHECK-NEXT: Flags: [ HAS_MAX ]
31; CHECK-NEXT: Initial: 0x00000001
32; CHECK-NEXT: Maximum: 0x00000001
33; CHECK-NEXT: - Type: MEMORY
Rui Ueyamab9b1a522018-01-24 00:22:53 +000034; CHECK-NEXT: Memories:
Sam Clegg408064e2018-01-12 17:56:15 +000035; CHECK-NEXT: - Initial: 0x00000002
36; CHECK-NEXT: - Type: GLOBAL
Rui Ueyamab9b1a522018-01-24 00:22:53 +000037; CHECK-NEXT: Globals:
Sam Clegg408064e2018-01-12 17:56:15 +000038; CHECK-NEXT: - Index: 0
39; CHECK-NEXT: Type: I32
40; CHECK-NEXT: Mutable: true
Rui Ueyamab9b1a522018-01-24 00:22:53 +000041; CHECK-NEXT: InitExpr:
Sam Clegg408064e2018-01-12 17:56:15 +000042; CHECK-NEXT: Opcode: I32_CONST
43; CHECK-NEXT: Value: 66560
Sam Clegg51bcdc22018-01-17 01:34:31 +000044; CHECK-NEXT: - Index: 1
45; CHECK-NEXT: Type: I32
46; CHECK-NEXT: Mutable: false
Rui Ueyamab9b1a522018-01-24 00:22:53 +000047; CHECK-NEXT: InitExpr:
Sam Clegg51bcdc22018-01-17 01:34:31 +000048; CHECK-NEXT: Opcode: I32_CONST
49; CHECK-NEXT: Value: 66560
Sam Clegg37a4a8a2018-02-07 03:04:53 +000050; CHECK-NEXT: - Index: 2
51; CHECK-NEXT: Type: I32
52; CHECK-NEXT: Mutable: false
53; CHECK-NEXT: InitExpr:
54; CHECK-NEXT: Opcode: I32_CONST
55; CHECK-NEXT: Value: 1024
Sam Clegg408064e2018-01-12 17:56:15 +000056; CHECK-NEXT: - Type: EXPORT
Rui Ueyamab9b1a522018-01-24 00:22:53 +000057; CHECK-NEXT: Exports:
Sam Clegg408064e2018-01-12 17:56:15 +000058; CHECK-NEXT: - Name: memory
59; CHECK-NEXT: Kind: MEMORY
60; CHECK-NEXT: Index: 0
Sam Clegg0f0a4282018-01-20 01:44:45 +000061; CHECK-NEXT: - Name: start_alias
Sam Clegg408064e2018-01-12 17:56:15 +000062; CHECK-NEXT: Kind: FUNCTION
63; CHECK-NEXT: Index: 0
Sam Clegg0f0a4282018-01-20 01:44:45 +000064; CHECK-NEXT: - Name: _start
Sam Clegg408064e2018-01-12 17:56:15 +000065; CHECK-NEXT: Kind: FUNCTION
66; CHECK-NEXT: Index: 0
Sam Clegg51bcdc22018-01-17 01:34:31 +000067; CHECK-NEXT: - Name: __heap_base
68; CHECK-NEXT: Kind: GLOBAL
69; CHECK-NEXT: Index: 1
Sam Clegg37a4a8a2018-02-07 03:04:53 +000070; CHECK-NEXT: - Name: __data_end
71; CHECK-NEXT: Kind: GLOBAL
72; CHECK-NEXT: Index: 2
Sam Clegg408064e2018-01-12 17:56:15 +000073; CHECK-NEXT: - Type: CODE
Rui Ueyamab9b1a522018-01-24 00:22:53 +000074; CHECK-NEXT: Functions:
Sam Clegg408064e2018-01-12 17:56:15 +000075; CHECK-NEXT: - Index: 0
Rui Ueyamab9b1a522018-01-24 00:22:53 +000076; CHECK-NEXT: Locals:
Sam Clegg279c8502018-02-02 00:30:03 +000077; CHECK-NEXT: Body: 0B
Sam Clegg50686852018-01-12 18:35:13 +000078; CHECK-NEXT: - Index: 1
Rui Ueyamab9b1a522018-01-24 00:22:53 +000079; CHECK-NEXT: Locals:
Sam Clegg50686852018-01-12 18:35:13 +000080; CHECK-NEXT: Body: 0B
Sam Clegg408064e2018-01-12 17:56:15 +000081; CHECK-NEXT: - Type: CUSTOM
82; CHECK-NEXT: Name: linking
83; CHECK-NEXT: DataSize: 0
84; CHECK-NEXT: - Type: CUSTOM
85; CHECK-NEXT: Name: name
Rui Ueyamab9b1a522018-01-24 00:22:53 +000086; CHECK-NEXT: FunctionNames:
Sam Clegg408064e2018-01-12 17:56:15 +000087; CHECK-NEXT: - Index: 0
Sam Clegg1963d712018-01-17 20:19:04 +000088; CHECK-NEXT: Name: _start
Sam Clegg50686852018-01-12 18:35:13 +000089; CHECK-NEXT: - Index: 1
90; CHECK-NEXT: Name: __wasm_call_ctors
Sam Clegg408064e2018-01-12 17:56:15 +000091; CHECK-NEXT: ...