mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-22 10:16:43 +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 {
|
||||
class GlobalVariable;
|
||||
class Mangler;
|
||||
class MachineCodeEmitter;
|
||||
class ELFCodeEmitter;
|
||||
|
||||
/// ELFWriter - This class implements the common target-independent code for
|
||||
/// writing ELF files. Targets should derive a class from this to
|
||||
/// parameterize the output format.
|
||||
///
|
||||
class ELFWriter : public MachineFunctionPass {
|
||||
friend class ELFCodeEmitter;
|
||||
public:
|
||||
MachineCodeEmitter &getMachineCodeEmitter() const {
|
||||
return *(MachineCodeEmitter*)MCE;
|
||||
}
|
||||
|
||||
~ELFWriter();
|
||||
|
||||
protected:
|
||||
ELFWriter(std::ostream &O, TargetMachine &TM);
|
||||
|
||||
@ -40,6 +50,10 @@ namespace llvm {
|
||||
///
|
||||
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
|
||||
// ELFWriter.
|
||||
@ -143,7 +157,6 @@ namespace llvm {
|
||||
/// the local symbols first in the list).
|
||||
std::vector<ELFSym> SymbolTable;
|
||||
|
||||
|
||||
// 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
|
||||
// table in the ELF header. These members keep track of the offset in
|
||||
|
Loading…
x
Reference in New Issue
Block a user