Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index a7aabe23e0f856b18734e09f3fe4f40c7b4b508d..9e887e18540d2e4b77cd1ae131337d51ded33f18 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -4910,6 +4910,10 @@ class Code: public HeapObject { |
inline int instruction_size() const; |
inline void set_instruction_size(int value); |
+ // [unwinding_info_size]: Size of the unwinding information. |
+ inline int unwinding_info_size() const; |
+ inline void set_unwinding_info_size(int value); |
+ |
// [relocation_info]: Code relocation information |
DECL_ACCESSORS(relocation_info, ByteArray) |
void InvalidateRelocation(); |
@@ -4985,6 +4989,10 @@ class Code: public HeapObject { |
inline void set_raw_kind_specific_flags1(int value); |
inline void set_raw_kind_specific_flags2(int value); |
+ // [has_unwinding_info]: Whether this code object has unwinding information. |
+ // If it doesn't, unwinding_information_start() will point to invalid data. |
+ DECL_BOOLEAN_ACCESSORS(has_unwinding_info) |
rmcilroy
2016/06/21 13:47:44
nit - move down to near unwinding_info_start.
Als
Stefano Sanfilippo
2016/06/23 15:23:44
Done.
|
+ |
// Testers for interpreter builtins. |
inline bool is_interpreter_trampoline_builtin(); |
@@ -5135,6 +5143,12 @@ class Code: public HeapObject { |
// Returns the address of the first relocation info (read backwards!). |
inline byte* relocation_start(); |
+ // Returns the address of the unwinding information. |
rmcilroy
2016/06/21 13:47:44
information, if any.
Stefano Sanfilippo
2016/06/23 15:23:44
Done.
|
+ inline byte* unwinding_info_start(); |
+ |
+ // Returns the address past the end of the unwinding information. |
rmcilroy
2016/06/21 13:47:44
/s/past/right after/
Stefano Sanfilippo
2016/06/23 15:23:44
Done.
|
+ inline byte* unwinding_info_end(); |
+ |
// Code entry point. |
inline byte* entry(); |
@@ -5283,9 +5297,11 @@ class Code: public HeapObject { |
: public BitField<CacheHolderFlag, ICStateField::kNext, 2> {}; |
class KindField : public BitField<Kind, CacheHolderField::kNext, 5> {}; |
STATIC_ASSERT(NUMBER_OF_KINDS <= KindField::kMax); |
- class ExtraICStateField : public BitField<ExtraICState, KindField::kNext, |
- PlatformSmiTagging::kSmiValueSize - |
- KindField::kNext + 1> {}; |
+ class HasUnwindingInfoField : public BitField<bool, KindField::kNext, 1> {}; |
+ class ExtraICStateField |
+ : public BitField<ExtraICState, HasUnwindingInfoField::kNext, |
+ PlatformSmiTagging::kSmiValueSize - |
+ HasUnwindingInfoField::kNext + 1> {}; |
// KindSpecificFlags1 layout (STUB, BUILTIN and OPTIMIZED_FUNCTION) |
static const int kStackSlotsFirstBit = 0; |