mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-01 19:29:22 +00:00
getSymbolForDwarfGlobalReference is smart enough to know that it needs to register the stub it references with MachineModuleInfoMachO, so that it gets emitted at the end of the file. Move stub emission from X86ATTAsmPrinter::doFinalization to the new X86ATTAsmPrinter::EmitEndOfAsmFile asmprinter hook. The important thing here is that EmitEndOfAsmFile is called *after* the ehframes are emitted, so we get all the stubs. This allows us to remove a gross hack from the asmprinter where it would "just know" that it needed to output stubs for personality functions. Now this is all driven from a consistent interface. The testcase change is just reordering the expected output now that the stubs come out after the ehframe instead of before. This also unblocks other changes that Bill wants to make. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82269 91177308-0d34-0410-b5e6-96231b3b80d8
41 lines
1.4 KiB
C++
41 lines
1.4 KiB
C++
//===-- llvm/Target/X86/X86TargetObjectFile.h - X86 Object Info -*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_TARGET_X86_TARGETOBJECTFILE_H
|
|
#define LLVM_TARGET_X86_TARGETOBJECTFILE_H
|
|
|
|
#include "llvm/Target/TargetLoweringObjectFile.h"
|
|
|
|
namespace llvm {
|
|
|
|
/// X8632_MachoTargetObjectFile - This TLOF implementation is used for
|
|
/// Darwin/x86-32.
|
|
class X8632_MachoTargetObjectFile : public TargetLoweringObjectFileMachO {
|
|
public:
|
|
|
|
virtual const MCExpr *
|
|
getSymbolForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang,
|
|
MachineModuleInfo *MMI,
|
|
bool &IsIndirect, bool &IsPCRel) const;
|
|
};
|
|
|
|
/// X8664_MachoTargetObjectFile - This TLOF implementation is used for
|
|
/// Darwin/x86-64.
|
|
class X8664_MachoTargetObjectFile : public TargetLoweringObjectFileMachO {
|
|
public:
|
|
|
|
virtual const MCExpr *
|
|
getSymbolForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang,
|
|
MachineModuleInfo *MMI,
|
|
bool &IsIndirect, bool &IsPCRel) const;
|
|
};
|
|
} // end namespace llvm
|
|
|
|
#endif
|