forked from OSchip/llvm-project
parent
efb7e1aa29
commit
5e31d0b2e9
|
@ -16,6 +16,7 @@
|
|||
#include "llvm/Support/Debug.h"
|
||||
#include "llvm/Support/Endian.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include <algorithm>
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::object;
|
||||
|
@ -169,10 +170,9 @@ SectionRef SectionChunk::getSectionRef() {
|
|||
}
|
||||
|
||||
CommonChunk::CommonChunk(const COFFSymbolRef S) : Sym(S) {
|
||||
// Alignment is a section attribute, but common symbols don't
|
||||
// belong to any section. How do we know common data alignments?
|
||||
// Needs investigating. For now, we set a large number as an alignment.
|
||||
Align = 16;
|
||||
// Common symbols are aligned on natural boundaries up to 32 bytes.
|
||||
// This is what MSVC link.exe does.
|
||||
Align = std::min(uint64_t(32), NextPowerOf2(Sym.getValue()));
|
||||
}
|
||||
|
||||
uint32_t CommonChunk::getPermissions() const {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# Operands of B8 (MOV EAX) are common symbols
|
||||
CHECK: 3000: b8 00 10 00 40
|
||||
CHECK: 3005: b8 10 10 00 40
|
||||
CHECK: 3005: b8 04 10 00 40
|
||||
CHECK: 300a: b8 20 10 00 40
|
||||
CHECK: 300f: b8 60 10 00 40
|
||||
CHECK: 3014: b8 70 10 00 40
|
||||
CHECK: 3014: b8 80 10 00 40
|
||||
|
|
Loading…
Reference in New Issue