Split the landing pad basic block with the correct function. Also merge the
[oota-llvm.git] / lib / ExecutionEngine / JIT / JITDwarfEmitter.h
index 72c9b45b3b70794dcb2b5c5d8cc2af04ff20f8b3..8dc99abc4224e1269604f0abe0de2a0e4d2f0c7d 100644 (file)
 namespace llvm {
 
 class Function;
-class MachineCodeEmitter;
+class JITCodeEmitter;
 class MachineFunction;
 class MachineModuleInfo;
 class MachineMove;
+class MCAsmInfo;
 class TargetData;
 class TargetMachine;
 class TargetRegisterInfo;
 
 class JITDwarfEmitter {
   const TargetData* TD;
-  MachineCodeEmitter* MCE;
+  JITCodeEmitter* JCE;
   const TargetRegisterInfo* RI;
+  const MCAsmInfo *MAI;
   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