Add support to locate local variables in frames (early version.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26994 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Laskey
2006-03-23 18:12:57 +00:00
parent 4ca9757a39
commit f1d78e8335
13 changed files with 91 additions and 0 deletions

View File

@@ -17,6 +17,7 @@
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineLocation.h"
#include "llvm/Type.h"
#include "llvm/ADT/STLExtras.h"
#include <iostream>
@@ -199,5 +200,16 @@ void SparcRegisterInfo::emitEpilogue(MachineFunction &MF,
BuildMI(MBB, MBBI, SP::RESTORErr, 2, SP::G0).addReg(SP::G0).addReg(SP::G0);
}
void SparcRegisterInfo::getLocation(MachineFunction &MF, unsigned Index,
MachineLocation &ML) const {
assert(0 && "Needs to be defined for target");
MachineFrameInfo *MFI = MF.getFrameInfo();
// FIXME - Needs to handle register variables.
// FIXME - Faking that llvm number is same as gcc numbering.
ML.set(SP::G1 - SP::G0,
MFI->getObjectOffset(Index) + MFI->getStackSize());
}
#include "SparcGenRegisterInfo.inc"