Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index d3593b6edce9003f38fbceee97d72c503bb47368..51c37082a78c11db58bc74e7eef68b03a1bced4a 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -4929,6 +4929,8 @@ class Code: public HeapObject { |
inline bool is_pregenerated(); |
inline void set_is_pregenerated(bool value); |
+ inline bool is_thumb_mode(); |
+ |
// [optimizable]: For FUNCTION kind, tells if it is optimizable. |
inline bool optimizable(); |
inline void set_optimizable(bool value); |
@@ -5046,6 +5048,8 @@ class Code: public HeapObject { |
return ExtraICStateStubHolder::encode(stub_holder); |
} |
+ static inline Flags SetThumbModeInFlags(Flags flag); |
+ |
// Flags operations. |
static inline Flags ComputeFlags( |
Kind kind, |
@@ -5053,7 +5057,8 @@ class Code: public HeapObject { |
ExtraICState extra_ic_state = kNoExtraICState, |
StubType type = NORMAL, |
int argc = -1, |
- InlineCacheHolderFlag holder = OWN_MAP); |
+ InlineCacheHolderFlag holder = OWN_MAP, |
+ bool thumb_mode = false); |
static inline Flags ComputeMonomorphicFlags( |
Kind kind, |
@@ -5216,9 +5221,10 @@ class Code: public HeapObject { |
class CacheHolderField: public BitField<InlineCacheHolderFlag, 6, 1> {}; |
class KindField: public BitField<Kind, 7, 4> {}; |
class IsPregeneratedField: public BitField<bool, 11, 1> {}; |
- class ExtraICStateField: public BitField<ExtraICState, 12, 5> {}; |
- class ExtendedExtraICStateField: public BitField<ExtraICState, 12, |
- PlatformSmiTagging::kSmiValueSize - 12 + 1> {}; // NOLINT |
+ class IsThumbModeField: public BitField<bool, 12, 1> {}; |
+ class ExtraICStateField: public BitField<ExtraICState, 13, 5> {}; |
+ class ExtendedExtraICStateField: public BitField<ExtraICState, 13, |
+ PlatformSmiTagging::kSmiValueSize - 13 + 1> {}; // NOLINT |
STATIC_ASSERT(ExtraICStateField::kShift == ExtendedExtraICStateField::kShift); |
// KindSpecificFlags1 layout (STUB and OPTIMIZED_FUNCTION) |
@@ -5274,7 +5280,7 @@ class Code: public HeapObject { |
kIsCrankshaftedBit + 1 + 29, 1> {}; // NOLINT |
// Signed field cannot be encoded using the BitField class. |
- static const int kArgumentsCountShift = 17; |
+ static const int kArgumentsCountShift = 18; |
static const int kArgumentsCountMask = ~((1 << kArgumentsCountShift) - 1); |
static const int kArgumentsBits = |
PlatformSmiTagging::kSmiValueSize - Code::kArgumentsCountShift + 1; |