MBlazeRegisterInfo.h [plain text]
#ifndef MBLAZEREGISTERINFO_H
#define MBLAZEREGISTERINFO_H
#include "MBlaze.h"
#include "llvm/Target/TargetRegisterInfo.h"
#define GET_REGINFO_HEADER
#include "MBlazeGenRegisterInfo.inc"
namespace llvm {
class MBlazeSubtarget;
class TargetInstrInfo;
class Type;
namespace MBlaze {
enum SubregIndex {
SUBREG_FPEVEN = 1, SUBREG_FPODD = 2
};
}
struct MBlazeRegisterInfo : public MBlazeGenRegisterInfo {
const MBlazeSubtarget &Subtarget;
const TargetInstrInfo &TII;
MBlazeRegisterInfo(const MBlazeSubtarget &Subtarget,
const TargetInstrInfo &tii);
static unsigned getPICCallReg();
const unsigned *getCalleeSavedRegs(const MachineFunction* MF = 0) const;
BitVector getReservedRegs(const MachineFunction &MF) const;
void eliminateCallFramePseudoInstr(MachineFunction &MF,
MachineBasicBlock &MBB,
MachineBasicBlock::iterator I) const;
void eliminateFrameIndex(MachineBasicBlock::iterator II,
int SPAdj, RegScavenger *RS = NULL) const;
void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
unsigned getFrameRegister(const MachineFunction &MF) const;
unsigned getEHExceptionRegister() const;
unsigned getEHHandlerRegister() const;
};
}
#endif