mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-26 12:20:42 +00:00
Support for ELF Visibility
Emission for globals, using the correct data sections Function alignment can be computed for each target using TargetELFWriterInfo Some small fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73201 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -12,8 +12,26 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "X86ELFWriterInfo.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
#include "llvm/DerivedTypes.h"
|
||||
using namespace llvm;
|
||||
|
||||
X86ELFWriterInfo::X86ELFWriterInfo(bool is64Bit) :
|
||||
TargetELFWriterInfo(is64Bit ? EM_X86_64 : EM_386) {}
|
||||
X86ELFWriterInfo::X86ELFWriterInfo(TargetMachine &TM)
|
||||
: TargetELFWriterInfo(TM) {
|
||||
bool is64Bit = TM.getTargetData()->getPointerSizeInBits() == 64;
|
||||
EMachine = is64Bit ? EM_X86_64 : EM_386;
|
||||
}
|
||||
|
||||
X86ELFWriterInfo::~X86ELFWriterInfo() {}
|
||||
|
||||
unsigned X86ELFWriterInfo::getFunctionAlignment(const Function *F) const {
|
||||
unsigned FnAlign = 4;
|
||||
|
||||
if (F->hasFnAttr(Attribute::OptimizeForSize))
|
||||
FnAlign = 1;
|
||||
|
||||
if (F->getAlignment())
|
||||
FnAlign = Log2_32(F->getAlignment());
|
||||
|
||||
return (1 << FnAlign);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user