diff options
Diffstat (limited to 'llvm/lib/Target/Sparc/SparcV9CodeEmitter.h')
| -rw-r--r-- | llvm/lib/Target/Sparc/SparcV9CodeEmitter.h | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/llvm/lib/Target/Sparc/SparcV9CodeEmitter.h b/llvm/lib/Target/Sparc/SparcV9CodeEmitter.h new file mode 100644 index 00000000000..ea1c8790eea --- /dev/null +++ b/llvm/lib/Target/Sparc/SparcV9CodeEmitter.h @@ -0,0 +1,33 @@ + + +#ifndef SPARCV9CODEEMITTER_H +#define SPARCV9CODEEMITTER_H + +#include "llvm/CodeGen/MachineCodeEmitter.h" +#include "llvm/CodeGen/MachineFunctionPass.h" +#include "llvm/CodeGen/MachineInstr.h" + +class SparcV9CodeEmitter : public MachineFunctionPass { +  MachineCodeEmitter &MCE; + +public: +  SparcV9CodeEmitter(MachineCodeEmitter &M) : MCE(M) {} +     +  bool runOnMachineFunction(MachineFunction &F); +     +  /// Function generated by the CodeEmitterGenerator using TableGen +  /// +  static unsigned getBinaryCodeForInstr(MachineInstr &MI); + +private:     +  static int64_t getMachineOpValue(MachineOperand &MO); +  static unsigned getValueBit(int64_t Val, unsigned bit); + +  void emitConstant(unsigned Val, unsigned Size); + +  void emitBasicBlock(MachineBasicBlock &MBB); +  void emitInstruction(MachineInstr &MI); +     +}; + +#endif | 

