llvm-6502/lib/ExecutionEngine/JIT/JITDwarfEmitter.h
Chris Lattner 77beeaec1e remove the dwarf sizing stuff which is now dead, it was
"yet another" copy of the dwarf EH emission code that was
copied, pasted and slightly hacked up.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109169 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-22 21:20:39 +00:00

72 lines
2.1 KiB
C++

//===------ JITDwarfEmitter.h - Write dwarf tables into memory ------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file defines a JITDwarfEmitter object that is used by the JIT to
// write dwarf tables to memory.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_EXECUTION_ENGINE_JIT_DWARFEMITTER_H
#define LLVM_EXECUTION_ENGINE_JIT_DWARFEMITTER_H
namespace llvm {
class Function;
class JITCodeEmitter;
class MachineFunction;
class MachineModuleInfo;
class MachineMove;
class TargetData;
class TargetMachine;
class TargetRegisterInfo;
class JITDwarfEmitter {
const TargetData* TD;
JITCodeEmitter* JCE;
const TargetRegisterInfo* RI;
MachineModuleInfo* MMI;
JIT& Jit;
bool stackGrowthDirection;
unsigned char* EmitExceptionTable(MachineFunction* MF,
unsigned char* StartFunction,
unsigned char* EndFunction) const;
void EmitFrameMoves(intptr_t BaseLabelPtr,
const std::vector<MachineMove> &Moves) const;
unsigned char* EmitCommonEHFrame(const Function* Personality) const;
unsigned char* EmitEHFrame(const Function* Personality,
unsigned char* StartBufferPtr,
unsigned char* StartFunction,
unsigned char* EndFunction,
unsigned char* ExceptionTable) const;
public:
JITDwarfEmitter(JIT& jit);
unsigned char* EmitDwarfTable(MachineFunction& F,
JITCodeEmitter& JCE,
unsigned char* StartFunction,
unsigned char* EndFunction,
unsigned char* &EHFramePtr);
void setModuleInfo(MachineModuleInfo* Info) {
MMI = Info;
}
};
} // end namespace llvm
#endif // LLVM_EXECUTION_ENGINE_JIT_DWARFEMITTER_H