Chromium Code Reviews| 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..5e8ed3a8258ea8a2d8d6072bbe70180fed7d6b47 |
| --- /dev/null |
| +++ b/src/arm/eh-frame-arm.h |
| @@ -0,0 +1,38 @@ |
| +// 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_X64_UNWINDING_INFO_X64_H |
| +#define V8_X64_UNWINDING_INFO_X64_H |
| + |
| +#include "src/globals.h" |
| + |
| +namespace v8 { |
| +namespace internal { |
| + |
| +static const int kInitialCFARegister = 0x0b; |
| +static const int kInitialCFAOffset = 0; |
| +static const int kDataAlignmentFactor = 4; |
| +static const int kInitialStateOffsetInCIE = 19; |
| + |
| +// 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 |
| + 0x03, // CIE version 3 |
| + 0x7a, 0x4c, 0x52, 0x00, // Augmentation string zLR |
| + 0x01, // Code alignment factor: 1 |
|
rmcilroy
2016/06/28 10:37:32
I think we always have code aligned to 4 (or kPoin
Stefano Sanfilippo
2016/06/29 15:16:20
This is just a constant that is factored out from
rmcilroy
2016/06/30 15:23:10
I see, this is fine.
|
| + 0x04, // Data alignment factor: 4 |
|
rmcilroy
2016/06/28 10:37:32
Use kDataAlignmentFactor and other constants here
Stefano Sanfilippo
2016/06/29 15:16:20
Replaced kInitialCFAOffset where appropriate.
kDa
rmcilroy
2016/06/30 15:23:10
As mentioned in a new comment in eh-frame-x64, I t
|
| + 0x0e, // Return address register: lr (r14) |
| + 0x02, // Length of augmentation data |
| + 0xff, // No LSDA |
| + 0x1b, // FDE encoding: DW_EH_PE_sdata4 | DW_EH_PE_pcrel |
| + // Initial state |
| + 0x0c, 0x0b, 0x00, // CFA @ fp+0 |
| + 0x08, 0x0e, // lr valid |
| +}; |
| + |
| +} // namespace internal |
| +} // namespace v8 |
| + |
| +#endif |