3 #ifndef SPARCV9CODEEMITTER_H
4 #define SPARCV9CODEEMITTER_H
6 #include "llvm/BasicBlock.h"
7 #include "llvm/CodeGen/MachineCodeEmitter.h"
8 #include "llvm/CodeGen/MachineFunctionPass.h"
9 #include "llvm/CodeGen/MachineInstr.h"
11 class SparcV9CodeEmitter : public MachineFunctionPass {
12 MachineCodeEmitter &MCE;
16 SparcV9CodeEmitter(MachineCodeEmitter &M) : MCE(M) {}
18 bool runOnMachineFunction(MachineFunction &F);
20 /// Function generated by the CodeEmitterGenerator using TableGen
22 static unsigned getBinaryCodeForInstr(MachineInstr &MI);
25 static int64_t getMachineOpValue(MachineOperand &MO);
26 static unsigned getValueBit(int64_t Val, unsigned bit);
28 void emitConstant(unsigned Val, unsigned Size);
30 void emitBasicBlock(MachineBasicBlock &MBB);
31 void emitInstruction(MachineInstr &MI);