summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMMachineFunctionInfo.h
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2007-04-23 20:07:25 +0000
committerDale Johannesen <dalej@apple.com>2007-04-23 20:07:25 +0000
commitbd24f3f398bc26d686836dc412f3c1997953f427 (patch)
tree4217223da92a0c4ee84a5adb01fa7fb70fc9a0a9 /lib/Target/ARM/ARMMachineFunctionInfo.h
parent24fb52da3c797eaa9dc6315ef8c4713ed556daa0 (diff)
downloadllvm-bd24f3f398bc26d686836dc412f3c1997953f427.tar.gz
llvm-bd24f3f398bc26d686836dc412f3c1997953f427.tar.bz2
llvm-bd24f3f398bc26d686836dc412f3c1997953f427.tar.xz
add Align field, and use when generating function alignment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36371 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMMachineFunctionInfo.h')
-rw-r--r--lib/Target/ARM/ARMMachineFunctionInfo.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMMachineFunctionInfo.h b/lib/Target/ARM/ARMMachineFunctionInfo.h
index f943cb7565..665c5e3929 100644
--- a/lib/Target/ARM/ARMMachineFunctionInfo.h
+++ b/lib/Target/ARM/ARMMachineFunctionInfo.h
@@ -27,9 +27,14 @@ namespace llvm {
class ARMFunctionInfo : public MachineFunctionInfo {
/// isThumb - True if this function is compiled under Thumb mode.
- ///
+ /// Used to initialized Align, so must precede it.
bool isThumb;
+ /// Align - required alignment. ARM functions and Thumb functions with
+ /// constant pools require 4-byte alignment; other Thumb functions
+ /// require only 2-byte alignment.
+ unsigned Align;
+
/// VarArgsRegSaveSize - Size of the register save area for vararg functions.
///
unsigned VarArgsRegSaveSize;
@@ -84,7 +89,8 @@ class ARMFunctionInfo : public MachineFunctionInfo {
public:
ARMFunctionInfo() :
- isThumb(false),
+ isThumb(false),
+ Align(2U),
VarArgsRegSaveSize(0), HasStackFrame(false),
LRSpilledForFarJump(false), R3IsLiveIn(false),
FramePtrSpillOffset(0), GPRCS1Offset(0), GPRCS2Offset(0), DPRCSOffset(0),
@@ -94,6 +100,7 @@ public:
ARMFunctionInfo(MachineFunction &MF) :
isThumb(MF.getTarget().getSubtarget<ARMSubtarget>().isThumb()),
+ Align(isThumb ? 1U : 2U),
VarArgsRegSaveSize(0), HasStackFrame(false),
LRSpilledForFarJump(false), R3IsLiveIn(false),
FramePtrSpillOffset(0), GPRCS1Offset(0), GPRCS2Offset(0), DPRCSOffset(0),
@@ -104,6 +111,9 @@ public:
bool isThumbFunction() const { return isThumb; }
+ unsigned getAlign() const { return Align; }
+ void setAlign(unsigned a) { Align = a; }
+
unsigned getVarArgsRegSaveSize() const { return VarArgsRegSaveSize; }
void setVarArgsRegSaveSize(unsigned s) { VarArgsRegSaveSize = s; }