1 //===-- TargetFrameInfo.cpp - Implement machine frame interface -*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // Implements the layout of a stack frame on the target machine.
12 //===----------------------------------------------------------------------===//
14 #include "llvm/Target/TargetFrameInfo.h"
19 TargetFrameInfo::~TargetFrameInfo()
23 //===--------------------------------------------------------------------===//
24 // These methods provide details of the stack frame used by Sparc, thus they
25 // are Sparc specific.
26 //===--------------------------------------------------------------------===//
28 // This method adjusts a stack offset to meet alignment rules of target.
30 TargetFrameInfo::adjustAlignment(int unalignedOffset
, bool growUp
,
31 unsigned align
) const {
36 // These methods compute offsets using the frame contents for a particular
37 // function. The frame contents are obtained from the MachineFunction object
38 // for the given function. The rest must be implemented by the
39 // machine-specific subclass.
42 TargetFrameInfo::getIncomingArgOffset(MachineFunction
& mcInfo
, unsigned argNum
)
49 TargetFrameInfo::getOutgoingArgOffset(MachineFunction
& mcInfo
,
50 unsigned argNum
) const {
56 TargetFrameInfo::getFirstAutomaticVarOffset(MachineFunction
& mcInfo
,
63 TargetFrameInfo::getRegSpillAreaOffset(MachineFunction
& mcInfo
, bool& growUp
)
70 TargetFrameInfo::getTmpAreaOffset(MachineFunction
& mcInfo
, bool& growUp
) const {
76 TargetFrameInfo::getDynamicAreaOffset(MachineFunction
& mcInfo
, bool& growUp
)