mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-08 21:32:39 +00:00
.o file writing shouldn't mess around with pic/relo models like the JIT does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75096 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b2fc55b721
commit
482fa0f2bc
@ -305,24 +305,6 @@ bool X86TargetMachine::addCodeEmitter(PassManagerBase &PM,
|
||||
CodeGenOpt::Level OptLevel,
|
||||
bool DumpAsm,
|
||||
ObjectCodeEmitter &OCE) {
|
||||
// FIXME: Move this to TargetJITInfo!
|
||||
// On Darwin, do not override 64-bit setting made in X86TargetMachine().
|
||||
if (DefRelocModel == Reloc::Default &&
|
||||
(!Subtarget.isTargetDarwin() || !Subtarget.is64Bit())) {
|
||||
setRelocationModel(Reloc::Static);
|
||||
Subtarget.setPICStyle(PICStyles::None);
|
||||
}
|
||||
|
||||
// 64-bit JIT places everything in the same buffer except external functions.
|
||||
// On Darwin, use small code model but hack the call instruction for
|
||||
// externals. Elsewhere, do not assume globals are in the lower 4G.
|
||||
if (Subtarget.is64Bit()) {
|
||||
if (Subtarget.isTargetDarwin())
|
||||
setCodeModel(CodeModel::Small);
|
||||
else
|
||||
setCodeModel(CodeModel::Large);
|
||||
}
|
||||
|
||||
PM.add(createX86ObjectCodeEmitterPass(*this, OCE));
|
||||
if (DumpAsm) {
|
||||
assert(AsmPrinterCtor && "AsmPrinter was not linked in");
|
||||
|
Loading…
x
Reference in New Issue
Block a user