~ubuntu-branches/ubuntu/feisty/clamav/feisty

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/lib/ExecutionEngine/JIT/JITDwarfEmitter.h

  • Committer: Bazaar Package Importer
  • Author(s): Kees Cook
  • Date: 2007-02-20 10:33:44 UTC
  • mto: This revision was merged to the branch mainline in revision 16.
  • Revision ID: james.westby@ubuntu.com-20070220103344-zgcu2psnx9d98fpa
Tags: upstream-0.90
ImportĀ upstreamĀ versionĀ 0.90

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//===------ JITDwarfEmitter.h - Write dwarf tables into memory ------------===//
2
 
//
3
 
//                     The LLVM Compiler Infrastructure
4
 
//
5
 
// This file is distributed under the University of Illinois Open Source
6
 
// License. See LICENSE.TXT for details.
7
 
//
8
 
//===----------------------------------------------------------------------===//
9
 
//
10
 
// This file defines a JITDwarfEmitter object that is used by the JIT to
11
 
// write dwarf tables to memory.
12
 
//
13
 
//===----------------------------------------------------------------------===//
14
 
 
15
 
#ifndef LLVM_EXECUTION_ENGINE_JIT_DWARFEMITTER_H
16
 
#define LLVM_EXECUTION_ENGINE_JIT_DWARFEMITTER_H
17
 
 
18
 
namespace llvm {
19
 
 
20
 
class Function;
21
 
class JITCodeEmitter;
22
 
class MachineFunction;
23
 
class MachineModuleInfo;
24
 
class MachineMove;
25
 
class TargetData;
26
 
class TargetMachine;
27
 
class TargetRegisterInfo;
28
 
 
29
 
class JITDwarfEmitter {
30
 
  const TargetData* TD;
31
 
  JITCodeEmitter* JCE;
32
 
  const TargetRegisterInfo* RI;
33
 
  MachineModuleInfo* MMI;
34
 
  JIT& Jit;
35
 
  bool stackGrowthDirection;
36
 
  
37
 
  unsigned char* EmitExceptionTable(MachineFunction* MF,
38
 
                                    unsigned char* StartFunction, 
39
 
                                    unsigned char* EndFunction) const;
40
 
 
41
 
  void EmitFrameMoves(intptr_t BaseLabelPtr, 
42
 
                      const std::vector<MachineMove> &Moves) const;
43
 
    
44
 
  unsigned char* EmitCommonEHFrame(const Function* Personality) const;
45
 
 
46
 
  unsigned char* EmitEHFrame(const Function* Personality, 
47
 
                             unsigned char* StartBufferPtr,
48
 
                             unsigned char* StartFunction, 
49
 
                             unsigned char* EndFunction,
50
 
                             unsigned char* ExceptionTable) const;
51
 
    
52
 
public:
53
 
  
54
 
  JITDwarfEmitter(JIT& jit);
55
 
  
56
 
  unsigned char* EmitDwarfTable(MachineFunction& F, 
57
 
                                JITCodeEmitter& JCE,
58
 
                                unsigned char* StartFunction,
59
 
                                unsigned char* EndFunction,
60
 
                                unsigned char* &EHFramePtr);
61
 
  
62
 
  
63
 
  void setModuleInfo(MachineModuleInfo* Info) {
64
 
    MMI = Info;
65
 
  }
66
 
};
67
 
 
68
 
 
69
 
} // end namespace llvm
70
 
 
71
 
#endif // LLVM_EXECUTION_ENGINE_JIT_DWARFEMITTER_H