//===-- Nios2RegisterInfo.cpp - Nios2 Register Information -== ------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file contains the Nios2 implementation of the TargetRegisterInfo class. // //===----------------------------------------------------------------------===// #define DEBUG_TYPE "nios2-reg-info" #include "Nios2RegisterInfo.h" #include "Nios2.h" #include "Nios2Subtarget.h" #define GET_REGINFO_TARGET_DESC #include "Nios2GenRegisterInfo.inc" using namespace llvm; Nios2RegisterInfo::Nios2RegisterInfo(const Nios2Subtarget &ST) : Nios2GenRegisterInfo(Nios2::RA), Subtarget(ST) {} const TargetRegisterClass *Nios2RegisterInfo::intRegClass(unsigned Size) const { return &Nios2::CPURegsRegClass; } const MCPhysReg * Nios2RegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) const { return CSR_SaveList; } BitVector Nios2RegisterInfo::getReservedRegs(const MachineFunction &MF) const { static const MCPhysReg ReservedCPURegs[] = {Nios2::ZERO, Nios2::AT, Nios2::SP, Nios2::RA, Nios2::PC, Nios2::GP}; BitVector Reserved(getNumRegs()); for (unsigned I = 0; I < array_lengthof(ReservedCPURegs); ++I) Reserved.set(ReservedCPURegs[I]); return Reserved; } void Nios2RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj, unsigned FIOperandNum, RegScavenger *RS) const {} unsigned Nios2RegisterInfo::getFrameRegister(const MachineFunction &MF) const { return Nios2::SP; }