| //===------ 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 MCAsmInfo; | 
 | class TargetData; | 
 | class TargetMachine; | 
 | class TargetRegisterInfo; | 
 |  | 
 | class JITDwarfEmitter { | 
 |   const TargetData* TD; | 
 |   JITCodeEmitter* JCE; | 
 |   const TargetRegisterInfo* RI; | 
 |   const MCAsmInfo *MAI; | 
 |   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 |