diff options
author | Dale Johannesen <dalej@apple.com> | 2007-04-23 20:07:25 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2007-04-23 20:07:25 +0000 |
commit | bd24f3f398bc26d686836dc412f3c1997953f427 (patch) | |
tree | 4217223da92a0c4ee84a5adb01fa7fb70fc9a0a9 /lib/Target/ARM/ARMMachineFunctionInfo.h | |
parent | 24fb52da3c797eaa9dc6315ef8c4713ed556daa0 (diff) | |
download | llvm-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.h | 14 |
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; } |