1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/lib/Target/MachineFrameInfo.cpp
Chris Lattner 4d9fadc44a * Removed extraneous #includes
* Fixed file headers to be consistent with the rest of LLVM
* Other minor fixes

llvm-svn: 3277
2002-08-09 20:08:03 +00:00

43 lines
1.5 KiB
C++

//===-- MachineFrameInfo.cpp-----------------------------------------------===//
//
// Interface to layout of stack frame on target machine. Most functions of
// class MachineFrameInfo have to be machine-specific so there is little code
// here.
//
//===----------------------------------------------------------------------===//
#include "llvm/Target/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineCodeForMethod.h"
int
MachineFrameInfo::getIncomingArgOffset(MachineCodeForMethod& mcInfo,
unsigned argNum) const
{
assert(argsOnStackHaveFixedSize());
unsigned relativeOffset = argNum * getSizeOfEachArgOnStack();
bool growUp; // do args grow up or down
int firstArg = getFirstIncomingArgOffset(mcInfo, growUp);
int offset = growUp? firstArg + relativeOffset
: firstArg - relativeOffset;
return offset;
}
int
MachineFrameInfo::getOutgoingArgOffset(MachineCodeForMethod& mcInfo,
unsigned argNum) const
{
assert(argsOnStackHaveFixedSize());
assert(((int) argNum - this->getNumFixedOutgoingArgs())
<= (int) mcInfo.getMaxOptionalNumArgs());
unsigned relativeOffset = argNum * getSizeOfEachArgOnStack();
bool growUp; // do args grow up or down
int firstArg = getFirstOutgoingArgOffset(mcInfo, growUp);
int offset = growUp? firstArg + relativeOffset
: firstArg - relativeOffset;
return offset;
}