X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FMRegisterInfo.cpp;h=920bb5d3af3f66e6d1294d21a7bc1afa16649b36;hb=f3e1b1d716ccff0ccb387802349c5a813f223241;hp=3ab7d991c8650bc333ed15bf91190843b8c7a289;hpb=7847fcac174bdda94373447676526af1bb1bc630;p=oota-llvm.git diff --git a/lib/Target/MRegisterInfo.cpp b/lib/Target/MRegisterInfo.cpp index 3ab7d991c86..920bb5d3af3 100644 --- a/lib/Target/MRegisterInfo.cpp +++ b/lib/Target/MRegisterInfo.cpp @@ -13,9 +13,13 @@ #include "llvm/Target/MRegisterInfo.h" -namespace llvm { +#include "llvm/CodeGen/MachineFunction.h" +#include "llvm/CodeGen/MachineFrameInfo.h" +#include "llvm/CodeGen/MachineLocation.h" -MRegisterInfo::MRegisterInfo(const MRegisterDesc *D, unsigned NR, +using namespace llvm; + +MRegisterInfo::MRegisterInfo(const TargetRegisterDesc *D, unsigned NR, regclass_iterator RCB, regclass_iterator RCE, int CFSO, int CFDO) : Desc(D), NumRegs(NR), RegClassBegin(RCB), RegClassEnd(RCE) { @@ -40,4 +44,21 @@ std::vector MRegisterInfo::getAllocatableSet(MachineFunction &MF) const { return Allocatable; } -} // End llvm namespace +/// getLocation - This method should return the actual location of a frame +/// variable given the frame index. The location is returned in ML. +/// Subclasses should override this method for special handling of frame +/// variables and then call MRegisterInfo::getLocation for the default action. +void MRegisterInfo::getLocation(MachineFunction &MF, unsigned Index, + MachineLocation &ML) const { + MachineFrameInfo *MFI = MF.getFrameInfo(); + ML.set(getFrameRegister(MF), + MFI->getObjectOffset(Index) + MFI->getStackSize()); +} + +/// getInitialFrameState - Returns a list of machine moves that are assumed +/// on entry to a function. +void +MRegisterInfo::getInitialFrameState(std::vector &Moves) const { + // Default is to do nothing. +} +