blob: d9f8a575e28722fe42438050c03c7389fd07fabe [file] [log] [blame]
Misha Brukmanb8bda132004-03-11 23:52:43 +00001//===-- TargetFrameInfo.cpp - Implement machine frame interface -*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
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.
7//
8//===----------------------------------------------------------------------===//
9//
10// Implements the layout of a stack frame on the target machine.
11//
12//===----------------------------------------------------------------------===//
13
14#include "llvm/Target/TargetFrameInfo.h"
15#include <cstdlib>
16
17using namespace llvm;
18
19//===--------------------------------------------------------------------===//
20// These methods provide details of the stack frame used by Sparc, thus they
21// are Sparc specific.
22//===--------------------------------------------------------------------===//
23
24int TargetFrameInfo::getStackFrameSizeAlignment() const { abort(); }
25int TargetFrameInfo::getMinStackFrameSize() const { abort(); }
26int TargetFrameInfo::getNumFixedOutgoingArgs() const { abort(); }
27int TargetFrameInfo::getSizeOfEachArgOnStack() const { abort(); }
28bool TargetFrameInfo::argsOnStackHaveFixedSize() const { abort(); }
29
30// This method adjusts a stack offset to meet alignment rules of target.
31int
32TargetFrameInfo::adjustAlignment(int unalignedOffset, bool growUp,
33 unsigned align) const { abort(); }
34
35// These methods compute offsets using the frame contents for a particular
36// function. The frame contents are obtained from the MachineFunction object
37// for the given function. The rest must be implemented by the
38// machine-specific subclass.
39//
40int
41TargetFrameInfo::getIncomingArgOffset(MachineFunction& mcInfo, unsigned argNum)
42 const{ abort(); }
43
44int
45TargetFrameInfo::getOutgoingArgOffset(MachineFunction& mcInfo,
46 unsigned argNum) const { abort(); }
47
48int
49TargetFrameInfo::getFirstIncomingArgOffset(MachineFunction& mcInfo,
50 bool& growUp) const { abort(); }
51
52int
53TargetFrameInfo::getFirstOutgoingArgOffset(MachineFunction& mcInfo,
54 bool& growUp) const { abort(); }
55
56int
57TargetFrameInfo::getFirstOptionalOutgoingArgOffset(MachineFunction&,
58 bool& growUp) const { abort(); }
59
60int
61TargetFrameInfo::getFirstAutomaticVarOffset(MachineFunction& mcInfo,
62 bool& growUp) const { abort(); }
63
64int
65TargetFrameInfo::getRegSpillAreaOffset(MachineFunction& mcInfo, bool& growUp)
66 const { abort(); }
67
68int
69TargetFrameInfo::getTmpAreaOffset(MachineFunction& mcInfo, bool& growUp) const
70{ abort(); }
71
72int
73TargetFrameInfo::getDynamicAreaOffset(MachineFunction& mcInfo, bool& growUp)
74 const { abort(); }
75
76//
77// These methods specify the base register used for each stack area
78// (generally FP or SP)
79//
80int TargetFrameInfo::getIncomingArgBaseRegNum() const { abort(); }
81int TargetFrameInfo::getOutgoingArgBaseRegNum() const { abort(); }
82int TargetFrameInfo::getOptionalOutgoingArgBaseRegNum() const {abort();}
83int TargetFrameInfo::getAutomaticVarBaseRegNum() const { abort(); }
84int TargetFrameInfo::getRegSpillAreaBaseRegNum() const { abort(); }
85int TargetFrameInfo::getDynamicAreaBaseRegNum() const { abort(); }
86