forked from OSchip/llvm-project
[WebAssembly] Store section alignment as a power of 2
This change bumps for version number of the wasm object file metadata. See https://github.com/WebAssembly/tool-conventions/pull/92 Differential Revision: https://reviews.llvm.org/D56758 llvm-svn: 351285
This commit is contained in:
parent
c4c43b2bad
commit
56c587adfd
|
@ -26,7 +26,7 @@ const char WasmMagic[] = {'\0', 'a', 's', 'm'};
|
|||
// Wasm binary format version
|
||||
const uint32_t WasmVersion = 0x1;
|
||||
// Wasm linking metadata version
|
||||
const uint32_t WasmMetadataVersion = 0x1;
|
||||
const uint32_t WasmMetadataVersion = 0x2;
|
||||
// Wasm uses a 64k page size
|
||||
const uint32_t WasmPageSize = 65536;
|
||||
|
||||
|
|
|
@ -1256,7 +1256,7 @@ uint64_t WasmObjectWriter::writeObject(MCAssembler &Asm,
|
|||
Segment.Offset = DataSize;
|
||||
Segment.Section = &Section;
|
||||
addData(Segment.Data, Section);
|
||||
Segment.Alignment = Section.getAlignment();
|
||||
Segment.Alignment = Log2_32(Section.getAlignment());
|
||||
Segment.Flags = 0;
|
||||
DataSize += Segment.Data.size();
|
||||
Section.setSegmentIndex(SegmentIndex);
|
||||
|
|
|
@ -22,6 +22,6 @@ target triple = "wasm32-unknown-unknown"
|
|||
; CHECK-NEXT: SegmentInfo:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: .data
|
||||
; CHECK-NEXT: Alignment: 1
|
||||
; CHECK-NEXT: Alignment: 0
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: ...
|
||||
|
|
|
@ -77,7 +77,7 @@ entry:
|
|||
; CHECK-NEXT: Body: 1080808080000B
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: Version: 1
|
||||
; CHECK-NEXT: Version: 2
|
||||
; CHECK-NEXT: SymbolTable:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Kind: FUNCTION
|
||||
|
|
|
@ -64,18 +64,18 @@ target triple = "wasm32-unknown-unknown"
|
|||
; CHECK-NEXT: SegmentInfo:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: .bss.g0
|
||||
; CHECK-NEXT: Alignment: 4
|
||||
; CHECK-NEXT: Alignment: 2
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 1
|
||||
; CHECK-NEXT: Name: .bss.g1
|
||||
; CHECK-NEXT: Alignment: 4
|
||||
; CHECK-NEXT: Alignment: 2
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 2
|
||||
; CHECK-NEXT: Name: .bss.foo
|
||||
; CHECK-NEXT: Alignment: 1
|
||||
; CHECK-NEXT: Alignment: 0
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 3
|
||||
; CHECK-NEXT: Name: .bss.bar
|
||||
; CHECK-NEXT: Alignment: 1
|
||||
; CHECK-NEXT: Alignment: 0
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: ...
|
||||
|
|
|
@ -75,7 +75,7 @@ define linkonce_odr i32 @sharedFn() #1 comdat($sharedComdat) {
|
|||
; CHECK-NEXT: Content: '616263'
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: Version: 1
|
||||
; CHECK-NEXT: Version: 2
|
||||
; CHECK-NEXT: SymbolTable:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Kind: FUNCTION
|
||||
|
@ -106,7 +106,7 @@ define linkonce_odr i32 @sharedFn() #1 comdat($sharedComdat) {
|
|||
; CHECK-NEXT: SegmentInfo:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: .rodata.constantData
|
||||
; CHECK-NEXT: Alignment: 1
|
||||
; CHECK-NEXT: Alignment: 0
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: Comdats:
|
||||
; CHECK-NEXT: Name: basicInlineFn
|
||||
|
|
|
@ -44,7 +44,7 @@ define i32 @test_throw1(i8* %p) {
|
|||
|
||||
; CHECK: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: Version: 1
|
||||
; CHECK-NEXT: Version: 2
|
||||
; CHECK-NEXT: SymbolTable:
|
||||
|
||||
; CHECK: - Index: 1
|
||||
|
|
|
@ -60,14 +60,14 @@ target triple = "wasm32-unknown-unknown"
|
|||
; CHECK-NEXT: SegmentInfo:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: .data.global0
|
||||
; CHECK-NEXT: Alignment: 8
|
||||
; CHECK-NEXT: Alignment: 3
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 1
|
||||
; CHECK-NEXT: Name: .sec1
|
||||
; CHECK-NEXT: Alignment: 8
|
||||
; CHECK-NEXT: Alignment: 3
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 2
|
||||
; CHECK-NEXT: Name: .sec2
|
||||
; CHECK-NEXT: Alignment: 8
|
||||
; CHECK-NEXT: Alignment: 3
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: ...
|
||||
|
|
|
@ -14,7 +14,7 @@ entry:
|
|||
|
||||
; CHECK: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: Version: 1
|
||||
; CHECK-NEXT: Version: 2
|
||||
; CHECK-NEXT: SymbolTable:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Kind: FUNCTION
|
||||
|
|
|
@ -110,7 +110,7 @@ declare void @func3()
|
|||
; CHECK-NEXT: Content: '01040000'
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: Version: 1
|
||||
; CHECK-NEXT: Version: 2
|
||||
; CHECK-NEXT: SymbolTable:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Kind: FUNCTION
|
||||
|
@ -170,7 +170,7 @@ declare void @func3()
|
|||
; CHECK-NEXT: SegmentInfo:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: .data.global1
|
||||
; CHECK-NEXT: Alignment: 8
|
||||
; CHECK-NEXT: Alignment: 3
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: InitFunctions:
|
||||
; CHECK-NEXT: - Priority: 42
|
||||
|
|
|
@ -44,7 +44,7 @@ target triple = "wasm32-unknown-unknown"
|
|||
; CHECK-NEXT: Content: '06000000'
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: Version: 1
|
||||
; CHECK-NEXT: Version: 2
|
||||
; CHECK-NEXT: SymbolTable:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Kind: DATA
|
||||
|
@ -73,18 +73,18 @@ target triple = "wasm32-unknown-unknown"
|
|||
; CHECK-NEXT: SegmentInfo:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: .rodata..L.str1
|
||||
; CHECK-NEXT: Alignment: 1
|
||||
; CHECK-NEXT: Alignment: 0
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 1
|
||||
; CHECK-NEXT: Name: .rodata..L.str2
|
||||
; CHECK-NEXT: Alignment: 1
|
||||
; CHECK-NEXT: Alignment: 0
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 2
|
||||
; CHECK-NEXT: Name: .data.a
|
||||
; CHECK-NEXT: Alignment: 8
|
||||
; CHECK-NEXT: Alignment: 3
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 3
|
||||
; CHECK-NEXT: Name: .data.b
|
||||
; CHECK-NEXT: Alignment: 8
|
||||
; CHECK-NEXT: Alignment: 3
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK_NEXT: ...
|
||||
|
|
|
@ -138,7 +138,7 @@ entry:
|
|||
; CHECK-NEXT: Content: '01000000'
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: Version: 1
|
||||
; CHECK-NEXT: Version: 2
|
||||
; CHECK-NEXT: SymbolTable:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Kind: FUNCTION
|
||||
|
@ -197,15 +197,15 @@ entry:
|
|||
; CHECK-NEXT: SegmentInfo:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: .data.bar
|
||||
; CHECK-NEXT: Alignment: 8
|
||||
; CHECK-NEXT: Alignment: 3
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 1
|
||||
; CHECK-NEXT: Name: .data.direct_address
|
||||
; CHECK-NEXT: Alignment: 8
|
||||
; CHECK-NEXT: Alignment: 3
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 2
|
||||
; CHECK-NEXT: Name: .data.alias_address
|
||||
; CHECK-NEXT: Alignment: 8
|
||||
; CHECK-NEXT: Alignment: 3
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: ...
|
||||
|
||||
|
|
Binary file not shown.
|
@ -651,7 +651,7 @@ WASM-NEXT: FileHeader:
|
|||
WASM-NEXT: Version: 0x00000001
|
||||
WASM: - Type: CUSTOM
|
||||
WASM-NEXT: Name: linking
|
||||
WASM-NEXT: Version: 1
|
||||
WASM-NEXT: Version: 2
|
||||
WASM-NEXT: SymbolTable:
|
||||
WASM-NEXT: - Index: 0
|
||||
WASM-NEXT: Kind: FUNCTION
|
||||
|
@ -675,7 +675,7 @@ WASM: Name: var
|
|||
WASM: SegmentInfo:
|
||||
WASM-NEXT: - Index: 0
|
||||
WASM-NEXT: Name: .rodata..L.str
|
||||
WASM-NEXT: Alignment: 1
|
||||
WASM-NEXT: Alignment: 0
|
||||
WASM-NEXT: Flags: [ ]
|
||||
WASM-NEXT: - Index: 1
|
||||
WASM: ...
|
||||
|
|
|
@ -8,4 +8,4 @@ Sections:
|
|||
Name: linking
|
||||
Version: 0
|
||||
|
||||
# CHECK: {{.*}}: Unexpected metadata version: 0 (Expected: 1)
|
||||
# CHECK: {{.*}}: Unexpected metadata version: 0 (Expected: 2)
|
||||
|
|
|
@ -39,7 +39,7 @@ Sections:
|
|||
Body: 108180808000210020000F0B
|
||||
- Type: CUSTOM
|
||||
Name: linking
|
||||
Version: 1
|
||||
Version: 2
|
||||
SymbolTable:
|
||||
- Index: 0
|
||||
Kind: FUNCTION
|
||||
|
|
|
@ -24,7 +24,7 @@ Sections:
|
|||
Addend: -6
|
||||
- Type: CUSTOM
|
||||
Name: linking
|
||||
Version: 1
|
||||
Version: 2
|
||||
SymbolTable:
|
||||
- Index: 0
|
||||
Kind: DATA
|
||||
|
|
|
@ -32,7 +32,7 @@ Sections:
|
|||
Body: 200008808080800041000B
|
||||
- Type: CUSTOM
|
||||
Name: linking
|
||||
Version: 1
|
||||
Version: 2
|
||||
SymbolTable:
|
||||
- Index: 0
|
||||
Kind: FUNCTION
|
||||
|
@ -78,7 +78,7 @@ Sections:
|
|||
# CHECK-NEXT: Body: 200008808080800041000B
|
||||
# CHECK-NEXT: - Type: CUSTOM
|
||||
# CHECK-NEXT: Name: linking
|
||||
# CHECK-NEXT: Version: 1
|
||||
# CHECK-NEXT: Version: 2
|
||||
# CHECK-NEXT: SymbolTable:
|
||||
# CHECK-NEXT: - Index: 0
|
||||
# CHECK-NEXT: Kind: FUNCTION
|
||||
|
|
|
@ -13,7 +13,7 @@ Sections:
|
|||
GlobalMutable: false
|
||||
- Type: CUSTOM
|
||||
Name: linking
|
||||
Version: 1
|
||||
Version: 2
|
||||
SymbolTable:
|
||||
- Index: 0
|
||||
Kind: GLOBAL
|
||||
|
|
|
@ -29,7 +29,7 @@ Sections:
|
|||
Content: '11110000'
|
||||
- Type: CUSTOM
|
||||
Name: linking
|
||||
Version: 1
|
||||
Version: 2
|
||||
SymbolTable:
|
||||
- Index: 0
|
||||
Kind: FUNCTION
|
||||
|
|
|
@ -36,7 +36,7 @@ Sections:
|
|||
Body: 00
|
||||
- Type: CUSTOM
|
||||
Name: linking
|
||||
Version: 1
|
||||
Version: 2
|
||||
SymbolTable:
|
||||
- Index: 0
|
||||
Kind: FUNCTION
|
||||
|
|
|
@ -37,7 +37,7 @@ Sections:
|
|||
Content: '616263'
|
||||
- Type: CUSTOM
|
||||
Name: linking
|
||||
Version: 1
|
||||
Version: 2
|
||||
SymbolTable:
|
||||
- Index: 0
|
||||
Kind: FUNCTION
|
||||
|
|
|
@ -25,7 +25,7 @@ Sections:
|
|||
GlobalMutable: false
|
||||
- Type: CUSTOM
|
||||
Name: linking
|
||||
Version: 1
|
||||
Version: 2
|
||||
SymbolTable:
|
||||
- Index: 0
|
||||
Kind: FUNCTION
|
||||
|
|
|
@ -43,7 +43,7 @@ Sections:
|
|||
Content: '616263'
|
||||
- Type: CUSTOM
|
||||
Name: linking
|
||||
Version: 1
|
||||
Version: 2
|
||||
SymbolTable:
|
||||
- Index: 0
|
||||
Kind: DATA
|
||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue