blob: f88452e538c454b07dfa65f2afcb4ef7c978fff8 [file] [log] [blame]
Sam Clegg70683b22018-01-24 03:29:47 +00001; RUN: llc -filetype=obj -o %t.o %s
Sam Clegg752494b2018-05-05 01:23:07 +00002; RUN: wasm-ld %t.o -o %t.wasm
Sam Clegg408064e2018-01-12 17:56:15 +00003; RUN: obj2yaml %t.wasm | FileCheck %s
4
Sam Clegg262e0902018-05-10 17:59:41 +00005target triple = "wasm32-unknown-unknown"
Sam Clegg70683b22018-01-24 03:29:47 +00006
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 Clegg51bcdc22018-01-17 01:34:31 +000061; CHECK-NEXT: - Name: __heap_base
62; CHECK-NEXT: Kind: GLOBAL
63; CHECK-NEXT: Index: 1
Sam Clegg37a4a8a2018-02-07 03:04:53 +000064; CHECK-NEXT: - Name: __data_end
65; CHECK-NEXT: Kind: GLOBAL
66; CHECK-NEXT: Index: 2
Nicholas Wilson4cdf5b82018-03-01 09:38:02 +000067; CHECK-NEXT: - Name: _start
68; CHECK-NEXT: Kind: FUNCTION
Nicholas Wilson5639da82018-03-12 15:44:07 +000069; CHECK-NEXT: Index: 1
Nicholas Wilson4cdf5b82018-03-01 09:38:02 +000070; CHECK-NEXT: - Name: start_alias
71; CHECK-NEXT: Kind: FUNCTION
Nicholas Wilson5639da82018-03-12 15:44:07 +000072; CHECK-NEXT: Index: 1
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
Sam Clegg408064e2018-01-12 17:56:15 +000082; CHECK-NEXT: Name: name
Rui Ueyamab9b1a522018-01-24 00:22:53 +000083; CHECK-NEXT: FunctionNames:
Sam Clegg408064e2018-01-12 17:56:15 +000084; CHECK-NEXT: - Index: 0
Sam Clegg50686852018-01-12 18:35:13 +000085; CHECK-NEXT: Name: __wasm_call_ctors
Nicholas Wilson5639da82018-03-12 15:44:07 +000086; CHECK-NEXT: - Index: 1
87; CHECK-NEXT: Name: _start
Sam Clegg408064e2018-01-12 17:56:15 +000088; CHECK-NEXT: ...