aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Target/TargetFrameInfo.h
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2002-04-25 04:48:54 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2002-04-25 04:48:54 +0000
commita8ac3fca6f31ece5f9675434f1ddace6cd912c09 (patch)
tree1ee008cc193ad03017db3985a02c857a90ab3d62 /include/llvm/Target/TargetFrameInfo.h
parent7b3640bd1247ddf10a2615356904bed398720da1 (diff)
downloadexternal_llvm-a8ac3fca6f31ece5f9675434f1ddace6cd912c09.zip
external_llvm-a8ac3fca6f31ece5f9675434f1ddace6cd912c09.tar.gz
external_llvm-a8ac3fca6f31ece5f9675434f1ddace6cd912c09.tar.bz2
Added functions to compute the offset of a given incoming or outgoing
argument. These are no longer allocated as they are discovered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2320 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target/TargetFrameInfo.h')
-rw-r--r--include/llvm/Target/TargetFrameInfo.h22
1 files changed, 15 insertions, 7 deletions
diff --git a/include/llvm/Target/TargetFrameInfo.h b/include/llvm/Target/TargetFrameInfo.h
index df16c73..8f1a0be 100644
--- a/include/llvm/Target/TargetFrameInfo.h
+++ b/include/llvm/Target/TargetFrameInfo.h
@@ -20,6 +20,7 @@
//************************* Forward Declarations **************************/
class MachineCodeForMethod;
+class TargetMachine;
//*************************** External Classes ****************************/
@@ -45,21 +46,28 @@ public:
// These methods compute offsets using the frame contents for a
// particular method. The frame contents are obtained from the
// MachineCodeInfoForMethod object for the given method.
+ // The first few methods have default machine-independent implementations.
+ // The rest must be implemented by the machine-specific subclass.
//
+ virtual int getIncomingArgOffset (MachineCodeForMethod& mcInfo,
+ unsigned argNum) const;
+ virtual int getOutgoingArgOffset (MachineCodeForMethod& mcInfo,
+ unsigned argNum) const;
+
virtual int getFirstIncomingArgOffset (MachineCodeForMethod& mcInfo,
- bool& pos) const=0;
+ bool& growUp) const=0;
virtual int getFirstOutgoingArgOffset (MachineCodeForMethod& mcInfo,
- bool& pos) const=0;
+ bool& growUp) const=0;
virtual int getFirstOptionalOutgoingArgOffset (MachineCodeForMethod&,
- bool& pos) const=0;
+ bool& growUp) const=0;
virtual int getFirstAutomaticVarOffset (MachineCodeForMethod& mcInfo,
- bool& pos) const=0;
+ bool& growUp) const=0;
virtual int getRegSpillAreaOffset (MachineCodeForMethod& mcInfo,
- bool& pos) const=0;
+ bool& growUp) const=0;
virtual int getTmpAreaOffset (MachineCodeForMethod& mcInfo,
- bool& pos) const=0;
+ bool& growUp) const=0;
virtual int getDynamicAreaOffset (MachineCodeForMethod& mcInfo,
- bool& pos) const=0;
+ bool& growUp) const=0;
//
// These methods specify the base register used for each stack area