| 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;
|
|
|