mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-03-05 00:48:08 +00:00
[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/D56762 llvm-svn: 351287
This commit is contained in:
parent
32784a740a
commit
6320efb4ed
@ -34,7 +34,7 @@ Sections:
|
||||
Offset: 0x00000004
|
||||
- Type: CUSTOM
|
||||
Name: linking
|
||||
Version: 1
|
||||
Version: 2
|
||||
SymbolTable:
|
||||
- Index: 0
|
||||
Kind: GLOBAL
|
||||
|
@ -32,7 +32,7 @@ Sections:
|
||||
Offset: 0x00000004
|
||||
- Type: CUSTOM
|
||||
Name: linking
|
||||
Version: 1
|
||||
Version: 2
|
||||
SymbolTable:
|
||||
- Index: 0
|
||||
Kind: GLOBAL
|
||||
|
@ -382,7 +382,7 @@
|
||||
; RELOC-NEXT: Content: '0000000000000000'
|
||||
; RELOC-NEXT: - Type: CUSTOM
|
||||
; RELOC-NEXT: Name: linking
|
||||
; RELOC-NEXT: Version: 1
|
||||
; RELOC-NEXT: Version: 2
|
||||
; RELOC-NEXT: SymbolTable:
|
||||
; RELOC-NEXT: - Index: 0
|
||||
; RELOC-NEXT: Kind: FUNCTION
|
||||
@ -516,15 +516,15 @@
|
||||
; RELOC-NEXT: SegmentInfo:
|
||||
; RELOC-NEXT: - Index: 0
|
||||
; RELOC-NEXT: Name: .bss.colliding_global1
|
||||
; RELOC-NEXT: Alignment: 4
|
||||
; RELOC-NEXT: Alignment: 2
|
||||
; RELOC-NEXT: Flags: [ ]
|
||||
; RELOC-NEXT: - Index: 1
|
||||
; RELOC-NEXT: Name: .bss.colliding_global2
|
||||
; RELOC-NEXT: Alignment: 4
|
||||
; RELOC-NEXT: Alignment: 2
|
||||
; RELOC-NEXT: Flags: [ ]
|
||||
; RELOC-NEXT: - Index: 2
|
||||
; RELOC-NEXT: Name: .bss.colliding_global3
|
||||
; RELOC-NEXT: Alignment: 4
|
||||
; RELOC-NEXT: Alignment: 2
|
||||
; RELOC-NEXT: Flags: [ ]
|
||||
; RELOC-NEXT: - Type: CUSTOM
|
||||
; RELOC-NEXT: Name: name
|
||||
|
@ -815,7 +815,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
|
||||
@ -1482,9 +1482,9 @@ entry:
|
||||
; CHECK-NEXT: SegmentInfo:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: .data.g0
|
||||
; CHECK-NEXT: Alignment: 4
|
||||
; CHECK-NEXT: Alignment: 2
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 1
|
||||
; CHECK-NEXT: Name: .data.foo
|
||||
; CHECK-NEXT: Alignment: 4
|
||||
; CHECK-NEXT: Alignment: 2
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
|
@ -157,7 +157,7 @@ entry:
|
||||
; 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
|
||||
@ -232,27 +232,27 @@ entry:
|
||||
; CHECK-NEXT: SegmentInfo:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: .rodata.hello_str
|
||||
; CHECK-NEXT: Alignment: 1
|
||||
; CHECK-NEXT: Alignment: 0
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 1
|
||||
; CHECK-NEXT: Name: .data.func_addr1
|
||||
; CHECK-NEXT: Alignment: 4
|
||||
; CHECK-NEXT: Alignment: 2
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 2
|
||||
; CHECK-NEXT: Name: .data.func_addr2
|
||||
; CHECK-NEXT: Alignment: 4
|
||||
; CHECK-NEXT: Alignment: 2
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 3
|
||||
; CHECK-NEXT: Name: .data.func_addr3
|
||||
; CHECK-NEXT: Alignment: 4
|
||||
; CHECK-NEXT: Alignment: 2
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 4
|
||||
; CHECK-NEXT: Name: .data.data_addr1
|
||||
; CHECK-NEXT: Alignment: 8
|
||||
; CHECK-NEXT: Alignment: 3
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: - Index: 5
|
||||
; CHECK-NEXT: Name: .rodata.data_comdat
|
||||
; CHECK-NEXT: Alignment: 1
|
||||
; CHECK-NEXT: Alignment: 0
|
||||
; CHECK-NEXT: Flags: [ ]
|
||||
; CHECK-NEXT: Comdats:
|
||||
; CHECK-NEXT: - Name: func_comdat
|
||||
|
@ -50,7 +50,7 @@ entry:
|
||||
; CHECK-NEXT: Body: 23808080800041106B1A41000B
|
||||
; 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
|
||||
|
@ -250,7 +250,7 @@ entry:
|
||||
; RELOC-NEXT: Body: 23808080800041106B220024808080800020004181808080003602081081808080002101200041106A24808080800020010B
|
||||
; RELOC-NEXT: - Type: CUSTOM
|
||||
; RELOC-NEXT: Name: linking
|
||||
; RELOC-NEXT: Version: 1
|
||||
; RELOC-NEXT: Version: 2
|
||||
; RELOC-NEXT: SymbolTable:
|
||||
; RELOC-NEXT: - Index: 0
|
||||
; RELOC-NEXT: Kind: FUNCTION
|
||||
|
@ -26,7 +26,7 @@ public:
|
||||
void addInputSegment(InputSegment *InSeg) {
|
||||
Alignment = std::max(Alignment, InSeg->getAlignment());
|
||||
InputSegments.push_back(InSeg);
|
||||
Size = llvm::alignTo(Size, InSeg->getAlignment());
|
||||
Size = llvm::alignTo(Size, 1 << InSeg->getAlignment());
|
||||
InSeg->OutputSeg = this;
|
||||
InSeg->OutputSegmentOffset = Size;
|
||||
Size += InSeg->getSize();
|
||||
|
@ -477,7 +477,7 @@ void Writer::createDylinkSection() {
|
||||
raw_ostream &OS = Section->getStream();
|
||||
|
||||
writeUleb128(OS, MemSize, "MemSize");
|
||||
writeUleb128(OS, int(log2(MemAlign)), "MemAlign");
|
||||
writeUleb128(OS, MemAlign, "MemAlign");
|
||||
writeUleb128(OS, IndirectFunctions.size(), "TableSize");
|
||||
writeUleb128(OS, 0, "TableAlign");
|
||||
writeUleb128(OS, 0, "Needed"); // TODO: Support "needed" shared libraries
|
||||
@ -691,7 +691,7 @@ void Writer::layoutMemory() {
|
||||
MemAlign = 0;
|
||||
for (OutputSegment *Seg : Segments) {
|
||||
MemAlign = std::max(MemAlign, Seg->Alignment);
|
||||
MemoryPtr = alignTo(MemoryPtr, Seg->Alignment);
|
||||
MemoryPtr = alignTo(MemoryPtr, 1 << Seg->Alignment);
|
||||
Seg->StartVA = MemoryPtr;
|
||||
log(formatv("mem: {0,-15} offset={1,-8} size={2,-8} align={3}", Seg->Name,
|
||||
MemoryPtr, Seg->Size, Seg->Alignment));
|
||||
|
Loading…
x
Reference in New Issue
Block a user