namespace llvm {
class Function;
-class MachineCodeEmitter;
+class JITCodeEmitter;
class MachineFunction;
class MachineModuleInfo;
class MachineMove;
class TargetData;
+class TargetFrameLowering;
class TargetMachine;
class TargetRegisterInfo;
class JITDwarfEmitter {
const TargetData* TD;
- MachineCodeEmitter* MCE;
+ JITCodeEmitter* JCE;
const TargetRegisterInfo* RI;
+ const TargetFrameLowering *TFI;
MachineModuleInfo* MMI;
JIT& Jit;
- bool needsIndirectEncoding;
bool stackGrowthDirection;
-
-public:
- JITDwarfEmitter(JIT& jit);
unsigned char* EmitExceptionTable(MachineFunction* MF,
- unsigned char* StartFunction,
- unsigned char* EndFunction);
+ unsigned char* StartFunction,
+ unsigned char* EndFunction) const;
+
+ void EmitFrameMoves(intptr_t BaseLabelPtr,
+ const std::vector<MachineMove> &Moves) const;
- void EmitFrameMoves(intptr_t BaseLabelPtr,
- const std::vector<MachineMove> &Moves);
-
- unsigned char* EmitCommonEHFrame(const Function* Personality);
+ unsigned char* EmitCommonEHFrame(const Function* Personality) const;
- unsigned char* EmitEHFrame(const Function* Personality,
+ unsigned char* EmitEHFrame(const Function* Personality,
unsigned char* StartBufferPtr,
- unsigned char* StartFunction,
+ unsigned char* StartFunction,
unsigned char* EndFunction,
- unsigned char* ExceptionTable);
-
+ unsigned char* ExceptionTable) const;
+
+public:
- unsigned char* EmitDwarfTable(MachineFunction& F,
- MachineCodeEmitter& MCE,
+ JITDwarfEmitter(JIT& jit);
+
+ unsigned char* EmitDwarfTable(MachineFunction& F,
+ JITCodeEmitter& JCE,
unsigned char* StartFunction,
- unsigned char* EndFunction);
-
+ unsigned char* EndFunction,
+ unsigned char* &EHFramePtr);
+
+
void setModuleInfo(MachineModuleInfo* Info) {
MMI = Info;
}
};
+
} // end namespace llvm
#endif // LLVM_EXECUTION_ENGINE_JIT_DWARFEMITTER_H