1 // RUN
: llvm-mc
-filetype
=obj
-triple
=wasm32-unknown-unknown
%s
-o
%t.o
2 // RUN
: wasm-
ld -O1
%t.o
-o
%t.wasm
--no-gc-sections
--no-entry
3 // RUN
: obj2yaml
%t.wasm | FileCheck
%s
--check-prefixes
=COMMON
,MERGE
5 // Check that the default is the same as
-O1
(since we default to
-O1
)
6 // RUN
: wasm-
ld %t.o
-o
%t.wasm
--no-gc-sections
--no-entry
7 // RUN
: obj2yaml
%t.wasm | FileCheck
%s
--check-prefixes
=COMMON
,MERGE
9 // Check that
-O0 disables merging
10 // RUN
: wasm-
ld -O0
%t.o
-o
%t2.wasm
--no-gc-sections
--no-entry
11 // RUN
: obj2yaml
%t2.wasm | FileCheck
--check-prefixes
=COMMON
,NOMERGE
%s
14 // RUN
: wasm-
ld -r
%t.o
-o
%t2.o
15 // RUN
: obj2yaml
%t2.o | FileCheck
--check-prefixes
=RELOC
%s
17 .section .rodata1,"S",@
27 .section .rodata_relocs,"",@
30 .size negative_addend, 4
37 // COMMON
: - Type
: GLOBAL
38 // COMMON-NEXT
: Globals
:
39 // COMMON-NEXT
: - Index
: 0
40 // COMMON-NEXT
: Type
: I32
41 // COMMON-NEXT
: Mutable
: true
42 // COMMON-NEXT
: InitExpr
:
43 // COMMON-NEXT
: Opcode
: I32_CONST
44 // COMMON-NEXT
: Value
: 66576
45 // COMMON-NEXT
: - Index
: 1
46 // COMMON-NEXT
: Type
: I32
47 // COMMON-NEXT
: Mutable
: false
48 // COMMON-NEXT
: InitExpr
:
49 // COMMON-NEXT
: Opcode
: I32_CONST
50 // MERGE-NEXT
: Value
: 1024
51 // NOMERGE-NEXT
: Value
: 1028
52 // COMMON-NEXT
: - Index
: 2
53 // COMMON-NEXT
: Type
: I32
54 // COMMON-NEXT
: Mutable
: false
55 // COMMON-NEXT
: InitExpr
:
56 // COMMON-NEXT
: Opcode
: I32_CONST
57 // MERGE-NEXT
: Value
: 1025
58 // NOMERGE-NEXT
: Value
: 1029
59 // COMMON-NEXT
: - Type
: EXPORT
60 // COMMON-NEXT
: Exports
:
61 // COMMON-NEXT
: - Name
: memory
62 // COMMON-NEXT
: Kind
: MEMORY
63 // COMMON-NEXT
: Index
: 0
64 // COMMON-NEXT
: - Name
: foo
65 // COMMON-NEXT
: Kind
: GLOBAL
66 // COMMON-NEXT
: Index
: 1
67 // COMMON-NEXT
: - Name
: bar
68 // COMMON-NEXT
: Kind
: GLOBAL
69 // COMMON-NEXT
: Index
: 2
72 // COMMON
: - Type
: DATA
73 // COMMON-NEXT
: Segments
:
74 // COMMON-NEXT
: - SectionOffset
: 7
75 // COMMON-NEXT
: InitFlags
: 0
76 // COMMON-NEXT
: Offset
:
77 // COMMON-NEXT
: Opcode
: I32_CONST
78 // COMMON-NEXT
: Value
: 1024
79 // MERGE-NEXT
: Content
: '61626300'
80 // NOMERGE-NEXT
: Content
: '6162630061626300626300'
83 // RELOC
: - Type
: DATA
84 // RELOC-NEXT
: Relocations
:
85 // RELOC-NEXT
: - Type
: R_WASM_MEMORY_ADDR_I32
86 // RELOC-NEXT
: Index
: 0
87 // RELOC-NEXT
: Offset
: 0xF
88 // RELOC-NEXT
: Addend
: -10
89 // RELOC-NEXT
: Segments
:
90 // RELOC-NEXT
: - SectionOffset
: 6
91 // RELOC-NEXT
: InitFlags
: 0
92 // RELOC-NEXT
: Offset
:
93 // RELOC-NEXT
: Opcode
: I32_CONST
94 // RELOC-NEXT
: Value
: 0
95 // RELOC-NEXT
: Content
: '61626300'
96 // RELOC-NEXT
: - SectionOffset
: 15
97 // RELOC-NEXT
: InitFlags
: 0
98 // RELOC-NEXT
: Offset
:
99 // RELOC-NEXT
: Opcode
: I32_CONST
100 // RELOC-NEXT
: Value
: 4
101 // RELOC-NEXT
: Content
: F6FFFFFF