mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-08 06:32:24 +00:00
expose a new code emitter object
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22374 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1ed38fb9a7
commit
6871aed032
@ -19,12 +19,22 @@
|
|||||||
namespace llvm {
|
namespace llvm {
|
||||||
class GlobalVariable;
|
class GlobalVariable;
|
||||||
class Mangler;
|
class Mangler;
|
||||||
|
class MachineCodeEmitter;
|
||||||
|
class ELFCodeEmitter;
|
||||||
|
|
||||||
/// ELFWriter - This class implements the common target-independent code for
|
/// ELFWriter - This class implements the common target-independent code for
|
||||||
/// writing ELF files. Targets should derive a class from this to
|
/// writing ELF files. Targets should derive a class from this to
|
||||||
/// parameterize the output format.
|
/// parameterize the output format.
|
||||||
///
|
///
|
||||||
class ELFWriter : public MachineFunctionPass {
|
class ELFWriter : public MachineFunctionPass {
|
||||||
|
friend class ELFCodeEmitter;
|
||||||
|
public:
|
||||||
|
MachineCodeEmitter &getMachineCodeEmitter() const {
|
||||||
|
return *(MachineCodeEmitter*)MCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
~ELFWriter();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ELFWriter(std::ostream &O, TargetMachine &TM);
|
ELFWriter(std::ostream &O, TargetMachine &TM);
|
||||||
|
|
||||||
@ -40,6 +50,10 @@ namespace llvm {
|
|||||||
///
|
///
|
||||||
Mangler *Mang;
|
Mangler *Mang;
|
||||||
|
|
||||||
|
/// MCE - The MachineCodeEmitter object that we are exposing to emit machine
|
||||||
|
/// code for functions to the .o file.
|
||||||
|
ELFCodeEmitter *MCE;
|
||||||
|
|
||||||
//===------------------------------------------------------------------===//
|
//===------------------------------------------------------------------===//
|
||||||
// Properties to be set by the derived class ctor, used to configure the
|
// Properties to be set by the derived class ctor, used to configure the
|
||||||
// ELFWriter.
|
// ELFWriter.
|
||||||
@ -143,7 +157,6 @@ namespace llvm {
|
|||||||
/// the local symbols first in the list).
|
/// the local symbols first in the list).
|
||||||
std::vector<ELFSym> SymbolTable;
|
std::vector<ELFSym> SymbolTable;
|
||||||
|
|
||||||
|
|
||||||
// As we accumulate the ELF file into OutputBuffer, we occasionally need to
|
// As we accumulate the ELF file into OutputBuffer, we occasionally need to
|
||||||
// keep track of locations to update later (e.g. the location of the section
|
// keep track of locations to update later (e.g. the location of the section
|
||||||
// table in the ELF header. These members keep track of the offset in
|
// table in the ELF header. These members keep track of the offset in
|
||||||
|
Loading…
x
Reference in New Issue
Block a user