Index: src/arm/eh-frame-arm.h |
diff --git a/src/arm/eh-frame-arm.h b/src/arm/eh-frame-arm.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..35167e0e56aa999fdc01661109550d85f6e8ff35 |
--- /dev/null |
+++ b/src/arm/eh-frame-arm.h |
@@ -0,0 +1,40 @@ |
+// Copyright 2016 the V8 project authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef V8_ARM_EH_FRAME_ARM_H_ |
+#define V8_ARM_EH_FRAME_ARM_H_ |
+ |
+#include "src/macro-assembler.h" |
+ |
+namespace v8 { |
+namespace internal { |
+ |
+static const Register& kInitialBaseRegister = fp; |
+static const int kInitialBaseOffset = 0; |
+static const int kDataAlignmentFactor = 4; |
+#ifdef ENABLE_DISASSEMBLER |
+static const int kInitialStateOffsetInCIE = 19; |
+#endif |
+ |
+// The code and data alignments are a bit unorthodox, but they suit our purpose. |
+static const byte kCIE[] = { |
+ 0x14, 0x00, 0x00, 0x00, // Size of the CIE excluding this field |
+ 0x00, 0x00, 0x00, 0x00, // CIE identifier, always 0 |
+ 3, // CIE version 3 |
+ 0x7a, 0x4c, 0x52, 0x00, // Augmentation string zLR |
+ 1, // Code alignment factor |
+ 4, // Data alignment factor |
+ 14, // Return address register: lr (r14) |
+ 0x02, // Length of augmentation data |
+ 0xff, // No LSDA |
+ 0x1b, // FDE pointers encoding: kSData4 | kPcRel |
+ // Initial state |
+ 0x0c, 11, kInitialBaseOffset, // base = fp+0 |
+ 0x08, 14, // lr valid |
+}; |
+ |
+} // namespace internal |
+} // namespace v8 |
+ |
+#endif |