1 //===-- SparcV9CodeEmitter.h ------------------------------------*- C++ -*-===//
4 //===----------------------------------------------------------------------===//
6 #ifndef SPARCV9CODEEMITTER_H
7 #define SPARCV9CODEEMITTER_H
9 #include "llvm/BasicBlock.h"
10 #include "llvm/CodeGen/MachineCodeEmitter.h"
11 #include "llvm/CodeGen/MachineFunctionPass.h"
12 #include "llvm/CodeGen/MachineInstr.h"
13 #include "llvm/Target/TargetMachine.h"
15 class SparcV9CodeEmitter : public MachineFunctionPass {
16 static MachineCodeEmitter *MCE;
17 static TargetMachine *TM;
21 SparcV9CodeEmitter(TargetMachine *tm, MachineCodeEmitter &M) {
26 bool runOnMachineFunction(MachineFunction &F);
28 /// Function generated by the CodeEmitterGenerator using TableGen
30 static unsigned getBinaryCodeForInstr(MachineInstr &MI);
33 static int64_t getMachineOpValue(MachineInstr &MI, MachineOperand &MO);
34 static unsigned getValueBit(int64_t Val, unsigned bit);
36 void emitConstant(unsigned Val, unsigned Size);
38 void emitBasicBlock(MachineBasicBlock &MBB);
39 void emitInstruction(MachineInstr &MI);