blob: ea1c8790eeacdf69bde372353206f7deb83ed48b [file] [log] [blame]
Misha Brukman0cc640e2003-05-27 21:45:05 +00001
2
3#ifndef SPARCV9CODEEMITTER_H
4#define SPARCV9CODEEMITTER_H
5
6#include "llvm/CodeGen/MachineCodeEmitter.h"
7#include "llvm/CodeGen/MachineFunctionPass.h"
8#include "llvm/CodeGen/MachineInstr.h"
9
10class SparcV9CodeEmitter : public MachineFunctionPass {
11 MachineCodeEmitter &MCE;
12
13public:
14 SparcV9CodeEmitter(MachineCodeEmitter &M) : MCE(M) {}
15
16 bool runOnMachineFunction(MachineFunction &F);
17
18 /// Function generated by the CodeEmitterGenerator using TableGen
19 ///
20 static unsigned getBinaryCodeForInstr(MachineInstr &MI);
21
22private:
23 static int64_t getMachineOpValue(MachineOperand &MO);
24 static unsigned getValueBit(int64_t Val, unsigned bit);
25
26 void emitConstant(unsigned Val, unsigned Size);
27
28 void emitBasicBlock(MachineBasicBlock &MBB);
29 void emitInstruction(MachineInstr &MI);
30
31};
32
33#endif