diff options
Diffstat (limited to 'llvm/lib/Target/Sparc/SparcV9CodeEmitter.h')
| -rw-r--r-- | llvm/lib/Target/Sparc/SparcV9CodeEmitter.h | 27 | 
1 files changed, 21 insertions, 6 deletions
| diff --git a/llvm/lib/Target/Sparc/SparcV9CodeEmitter.h b/llvm/lib/Target/Sparc/SparcV9CodeEmitter.h index 125dedb1e0e..6680a9c7fc9 100644 --- a/llvm/lib/Target/Sparc/SparcV9CodeEmitter.h +++ b/llvm/lib/Target/Sparc/SparcV9CodeEmitter.h @@ -9,14 +9,25 @@  #include "llvm/BasicBlock.h"  #include "llvm/CodeGen/MachineCodeEmitter.h"  #include "llvm/CodeGen/MachineFunctionPass.h" -#include "llvm/CodeGen/MachineInstr.h"  #include "llvm/Target/TargetMachine.h" +class GlobalValue; +class MachineInstr; +class MachineOperand; +  class SparcV9CodeEmitter : public MachineFunctionPass { -  static MachineCodeEmitter *MCE; -  static TargetMachine *TM; +  MachineCodeEmitter *MCE; +  TargetMachine *TM;    BasicBlock *currBB; +  // Tracks which instruction references which BasicBlock +  std::vector<std::pair<BasicBlock*, +                        std::pair<unsigned*,MachineInstr*> > > BBRefs; +  // Tracks where each BasicBlock starts +  std::map<BasicBlock*, long> BBLocations; +  // Tracks locations of Constants which are laid out in memory (e.g. FP) +  std::map<const Constant*, void*> ConstantMap; +  public:    SparcV9CodeEmitter(TargetMachine *tm, MachineCodeEmitter &M) {       MCE = &M; @@ -27,17 +38,21 @@ public:    /// Function generated by the CodeEmitterGenerator using TableGen    /// -  static unsigned getBinaryCodeForInstr(MachineInstr &MI); +  unsigned getBinaryCodeForInstr(MachineInstr &MI);  private:     -  static int64_t getMachineOpValue(MachineInstr &MI, MachineOperand &MO); -  static unsigned getValueBit(int64_t Val, unsigned bit); +  int64_t getMachineOpValue(MachineInstr &MI, MachineOperand &MO); +  unsigned getValueBit(int64_t Val, unsigned bit);    void emitConstant(unsigned Val, unsigned Size);    void emitBasicBlock(MachineBasicBlock &MBB);    void emitInstruction(MachineInstr &MI); +  void* convertAddress(intptr_t Addr, bool isPCRelative); +  void* getGlobalAddress(GlobalValue *V, MachineInstr &MI, +                         bool isPCRelative); +  };  #endif | 

