summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86FrameLowering.h
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2013-04-19 00:05:59 +0000
committerBill Wendling <isanbard@gmail.com>2013-04-19 00:05:59 +0000
commit89ec1c5c9c744c125b61145ed59783eb5c68ebf8 (patch)
tree2d7eae514b80a1ca244ebaf706ac17d71fbe544d /lib/Target/X86/X86FrameLowering.h
parent74d892433d617daa9728f2c52446b2cc2846553f (diff)
downloadllvm-89ec1c5c9c744c125b61145ed59783eb5c68ebf8.tar.gz
llvm-89ec1c5c9c744c125b61145ed59783eb5c68ebf8.tar.bz2
llvm-89ec1c5c9c744c125b61145ed59783eb5c68ebf8.tar.xz
Use an enum instead of magic constants to improve readability.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179820 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86FrameLowering.h')
-rw-r--r--lib/Target/X86/X86FrameLowering.h31
1 files changed, 29 insertions, 2 deletions
diff --git a/lib/Target/X86/X86FrameLowering.h b/lib/Target/X86/X86FrameLowering.h
index 3f08b9a2e8..6e309d8832 100644
--- a/lib/Target/X86/X86FrameLowering.h
+++ b/lib/Target/X86/X86FrameLowering.h
@@ -19,8 +19,35 @@
#include "llvm/Target/TargetFrameLowering.h"
namespace llvm {
- class MCSymbol;
- class X86TargetMachine;
+
+namespace CU {
+
+ /// Compact unwind encoding values.
+ enum CompactUnwindEncodings {
+ /// [RE]BP based frame where [RE]BP is pused on the stack immediately after
+ /// the return address, then [RE]SP is moved to [RE]BP.
+ UNWIND_MODE_BP_FRAME = 0x01000000,
+
+ /// A frameless function with a small constant stack size.
+ UNWIND_MODE_STACK_IMMD = 0x02000000,
+
+ /// A frameless function with a large constant stack size.
+ UNWIND_MODE_STACK_IND = 0x03000000,
+
+ /// No compact unwind encoding is available.
+ UNWIND_MODE_DWARF = 0x04000000,
+
+ /// Mask for encoding the frame registers.
+ UNWIND_BP_FRAME_REGISTERS = 0x00007FFF,
+
+ /// Mask for encoding the frameless registers.
+ UNWIND_FRAMELESS_STACK_REG_PERMUTATION = 0x000003FF
+ };
+
+} // end CU namespace
+
+class MCSymbol;
+class X86TargetMachine;
class X86FrameLowering : public TargetFrameLowering {
const X86TargetMachine &TM;