Index: src/code-stubs.h |
diff --git a/src/code-stubs.h b/src/code-stubs.h |
index 85314d0d307f86ffdf3d0946e8756647e41c3f7c..cdbbc1c04d73adbfc1aa8aa1dc2b381eb7de7fe6 100644 |
--- a/src/code-stubs.h |
+++ b/src/code-stubs.h |
@@ -448,7 +448,7 @@ class HydrogenCodeStub : public CodeStub { |
explicit HydrogenCodeStub(Isolate* isolate, |
InitializationState state = INITIALIZED) |
: CodeStub(isolate) { |
- is_uninitialized_ = (state == UNINITIALIZED); |
+ minor_key_ = IsMissBits::encode(state == UNINITIALIZED); |
} |
virtual Code::Kind GetCodeKind() const { return Code::STUB; } |
@@ -457,8 +457,6 @@ class HydrogenCodeStub : public CodeStub { |
return isolate()->code_stub_interface_descriptor(MajorKey()); |
} |
- bool IsUninitialized() { return is_uninitialized_; } |
- |
template<class SubClass> |
static Handle<Code> GetUninitialized(Isolate* isolate) { |
SubClass::GenerateAheadOfTime(isolate); |
@@ -471,24 +469,39 @@ class HydrogenCodeStub : public CodeStub { |
// Retrieve the code for the stub. Generate the code if needed. |
virtual Handle<Code> GenerateCode() = 0; |
- virtual int NotMissMinorKey() const = 0; |
+ bool IsUninitialized() const { return IsMissBits::decode(minor_key_); } |
+ |
+ // TODO(yangguo): we use this temporarily to construct the minor key. |
+ // We want to remove NotMissMinorKey methods one by one and eventually |
+ // remove HydrogenStub::MinorKey and turn CodeStub::MinorKey into a |
+ // non-virtual method that directly returns minor_key_. |
+ virtual int NotMissMinorKey() const { |
+ return SubMinorKeyBits::decode(minor_key_); |
+ } |
Handle<Code> GenerateLightweightMissCode(); |
template<class StateType> |
void TraceTransition(StateType from, StateType to); |
+ protected: |
+ void set_sub_minor_key(uint32_t key) { |
+ minor_key_ = SubMinorKeyBits::update(minor_key_, key); |
+ } |
+ |
+ uint32_t sub_minor_key() const { return SubMinorKeyBits::decode(minor_key_); } |
+ |
+ static const int kSubMinorKeyBits = kStubMinorKeyBits - 1; |
+ |
private: |
- class MinorKeyBits: public BitField<int, 0, kStubMinorKeyBits - 1> {}; |
- class IsMissBits: public BitField<bool, kStubMinorKeyBits - 1, 1> {}; |
+ class SubMinorKeyBits : public BitField<int, 0, kSubMinorKeyBits> {}; |
+ class IsMissBits : public BitField<bool, kSubMinorKeyBits, 1> {}; |
void GenerateLightweightMiss(MacroAssembler* masm); |
virtual uint32_t MinorKey() const { |
- return IsMissBits::encode(is_uninitialized_) | |
- MinorKeyBits::encode(NotMissMinorKey()); |
+ return IsMissBits::encode(IsUninitialized()) | |
+ SubMinorKeyBits::encode(NotMissMinorKey()); |
} |
- |
- bool is_uninitialized_; |
}; |
@@ -572,8 +585,7 @@ class ToNumberStub: public HydrogenCodeStub { |
} |
private: |
- Major MajorKey() const { return ToNumber; } |
- int NotMissMinorKey() const { return 0; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return ToNumber; } |
}; |
@@ -593,18 +605,17 @@ class NumberToStringStub V8_FINAL : public HydrogenCodeStub { |
private: |
virtual Major MajorKey() const V8_OVERRIDE { return NumberToString; } |
- virtual int NotMissMinorKey() const V8_OVERRIDE { return 0; } |
}; |
class FastNewClosureStub : public HydrogenCodeStub { |
public: |
- FastNewClosureStub(Isolate* isolate, |
- StrictMode strict_mode, |
+ FastNewClosureStub(Isolate* isolate, StrictMode strict_mode, |
bool is_generator) |
- : HydrogenCodeStub(isolate), |
- strict_mode_(strict_mode), |
- is_generator_(is_generator) { } |
+ : HydrogenCodeStub(isolate) { |
+ set_sub_minor_key(StrictModeBits::encode(strict_mode) | |
+ IsGeneratorBits::encode(is_generator)); |
+ } |
virtual Handle<Code> GenerateCode() V8_OVERRIDE; |
@@ -613,21 +624,19 @@ class FastNewClosureStub : public HydrogenCodeStub { |
static void InstallDescriptors(Isolate* isolate); |
- StrictMode strict_mode() const { return strict_mode_; } |
- bool is_generator() const { return is_generator_; } |
+ StrictMode strict_mode() const { |
+ return StrictModeBits::decode(sub_minor_key()); |
+ } |
+ |
+ bool is_generator() const { return IsGeneratorBits::decode(sub_minor_key()); } |
private: |
- class StrictModeBits: public BitField<bool, 0, 1> {}; |
- class IsGeneratorBits: public BitField<bool, 1, 1> {}; |
+ virtual Major MajorKey() const V8_OVERRIDE { return FastNewClosure; } |
- Major MajorKey() const { return FastNewClosure; } |
- int NotMissMinorKey() const { |
- return StrictModeBits::encode(strict_mode_ == STRICT) | |
- IsGeneratorBits::encode(is_generator_); |
- } |
+ class StrictModeBits : public BitField<StrictMode, 0, 1> {}; |
+ class IsGeneratorBits : public BitField<bool, 1, 1> {}; |
- StrictMode strict_mode_; |
- bool is_generator_; |
+ DISALLOW_COPY_AND_ASSIGN(FastNewClosureStub); |
}; |
@@ -683,7 +692,7 @@ class FastCloneShallowArrayStub : public HydrogenCodeStub { |
class AllocationSiteModeBits: public BitField<AllocationSiteMode, 0, 1> {}; |
// Ensure data fits within available bits. |
- Major MajorKey() const { return FastCloneShallowArray; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return FastCloneShallowArray; } |
int NotMissMinorKey() const { |
return AllocationSiteModeBits::encode(allocation_site_mode_); |
} |
@@ -711,7 +720,7 @@ class FastCloneShallowObjectStub : public HydrogenCodeStub { |
private: |
int length_; |
- Major MajorKey() const { return FastCloneShallowObject; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return FastCloneShallowObject; } |
int NotMissMinorKey() const { return length_; } |
DISALLOW_COPY_AND_ASSIGN(FastCloneShallowObjectStub); |
@@ -731,8 +740,7 @@ class CreateAllocationSiteStub : public HydrogenCodeStub { |
CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE; |
private: |
- Major MajorKey() const { return CreateAllocationSite; } |
- int NotMissMinorKey() const { return 0; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return CreateAllocationSite; } |
DISALLOW_COPY_AND_ASSIGN(CreateAllocationSiteStub); |
}; |
@@ -760,7 +768,7 @@ class InstanceofStub: public PlatformCodeStub { |
CodeStubInterfaceDescriptor* descriptor); |
private: |
- Major MajorKey() const { return Instanceof; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return Instanceof; } |
Flags flags() const { return FlagBits::decode(minor_key_); } |
@@ -799,7 +807,7 @@ class ArrayConstructorStub: public PlatformCodeStub { |
void Generate(MacroAssembler* masm); |
private: |
- virtual CodeStub::Major MajorKey() const { return ArrayConstructor; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return ArrayConstructor; } |
ArgumentCountKey argument_count() const { |
return ArgumentCountBits::decode(minor_key_); |
@@ -823,7 +831,9 @@ class InternalArrayConstructorStub: public PlatformCodeStub { |
void Generate(MacroAssembler* masm); |
private: |
- virtual CodeStub::Major MajorKey() const { return InternalArrayConstructor; } |
+ virtual Major MajorKey() const V8_OVERRIDE { |
+ return InternalArrayConstructor; |
+ } |
void GenerateCase(MacroAssembler* masm, ElementsKind kind); |
@@ -843,7 +853,7 @@ class MathPowStub: public PlatformCodeStub { |
virtual void Generate(MacroAssembler* masm); |
private: |
- virtual CodeStub::Major MajorKey() const { return MathPow; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return MathPow; } |
ExponentType exponent_type() const { |
return ExponentTypeBits::decode(minor_key_); |
@@ -890,7 +900,7 @@ class CallICStub: public PlatformCodeStub { |
void GenerateMiss(MacroAssembler* masm, IC::UtilityId id); |
private: |
- virtual CodeStub::Major MajorKey() const { return CallIC; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return CallIC; } |
virtual void PrintState(OStream& os) const V8_OVERRIDE; // NOLINT |
@@ -912,7 +922,7 @@ class CallIC_ArrayStub: public CallICStub { |
private: |
virtual void PrintState(OStream& os) const V8_OVERRIDE; // NOLINT |
- virtual CodeStub::Major MajorKey() const { return CallIC_Array; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return CallIC_Array; } |
DISALLOW_COPY_AND_ASSIGN(CallIC_ArrayStub); |
}; |
@@ -927,7 +937,7 @@ class FunctionPrototypeStub : public PlatformCodeStub { |
virtual Code::Kind GetCodeKind() const { return Code::HANDLER; } |
private: |
- virtual CodeStub::Major MajorKey() const { return FunctionPrototype; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return FunctionPrototype; } |
DISALLOW_COPY_AND_ASSIGN(FunctionPrototypeStub); |
}; |
@@ -970,7 +980,7 @@ class LoadFieldStub: public HandlerStub { |
private: |
class EncodedLoadFieldByIndexBits : public BitField<int, 0, 13> {}; |
- virtual CodeStub::Major MajorKey() const { return LoadField; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return LoadField; } |
FieldIndex index_; |
}; |
@@ -991,7 +1001,7 @@ class LoadConstantStub : public HandlerStub { |
virtual Code::StubType GetStubType() { return Code::FAST; } |
private: |
- virtual CodeStub::Major MajorKey() const { return LoadConstant; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return LoadConstant; } |
}; |
@@ -1005,7 +1015,7 @@ class StringLengthStub: public HandlerStub { |
virtual Code::StubType GetStubType() { return Code::FAST; } |
private: |
- virtual CodeStub::Major MajorKey() const { return StringLength; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return StringLength; } |
}; |
@@ -1034,7 +1044,7 @@ class StoreFieldStub : public HandlerStub { |
private: |
class EncodedStoreFieldByIndexBits : public BitField<int, 0, 13> {}; |
class RepresentationBits : public BitField<int, 13, 4> {}; |
- virtual CodeStub::Major MajorKey() const { return StoreField; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return StoreField; } |
FieldIndex index_; |
Representation representation_; |
}; |
@@ -1089,7 +1099,7 @@ class StoreGlobalStub : public HandlerStub { |
} |
private: |
- Major MajorKey() const { return StoreGlobal; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return StoreGlobal; } |
class IsConstantBits: public BitField<bool, 0, 1> {}; |
class RepresentationBits: public BitField<Representation::Kind, 1, 8> {}; |
@@ -1362,7 +1372,7 @@ class ICCompareStub: public PlatformCodeStub { |
class RightStateField: public BitField<int, 7, 4> { }; |
class HandlerStateField: public BitField<int, 11, 4> { }; |
- virtual CodeStub::Major MajorKey() const { return CompareIC; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return CompareIC; } |
virtual uint32_t MinorKey() const; |
virtual Code::Kind GetCodeKind() const { return Code::COMPARE_IC; } |
@@ -1481,7 +1491,7 @@ class CompareNilICStub : public HydrogenCodeStub { |
class NilValueField : public BitField<NilValue, 0, 1> {}; |
class TypesField : public BitField<byte, 1, NUMBER_OF_TYPES> {}; |
- virtual CodeStub::Major MajorKey() const { return CompareNilIC; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return CompareNilIC; } |
virtual int NotMissMinorKey() const { return GetExtraICState(); } |
NilValue nil_value_; |
@@ -1515,7 +1525,7 @@ class CEntryStub : public PlatformCodeStub { |
static void GenerateAheadOfTime(Isolate* isolate); |
private: |
- Major MajorKey() const { return CEntry; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return CEntry; } |
bool save_doubles() const { return SaveDoublesBits::decode(minor_key_); } |
#ifdef _WIN64 |
@@ -1541,7 +1551,7 @@ class JSEntryStub : public PlatformCodeStub { |
void GenerateBody(MacroAssembler* masm, bool is_construct); |
private: |
- Major MajorKey() const { return JSEntry; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return JSEntry; } |
virtual void FinishCode(Handle<Code> code); |
@@ -1582,7 +1592,7 @@ class ArgumentsAccessStub: public PlatformCodeStub { |
} |
private: |
- Major MajorKey() const { return ArgumentsAccess; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return ArgumentsAccess; } |
Type type() const { return TypeBits::decode(minor_key_); } |
@@ -1605,7 +1615,7 @@ class RegExpExecStub: public PlatformCodeStub { |
explicit RegExpExecStub(Isolate* isolate) : PlatformCodeStub(isolate) { } |
private: |
- Major MajorKey() const { return RegExpExec; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return RegExpExec; } |
void Generate(MacroAssembler* masm); |
@@ -1624,7 +1634,6 @@ class RegExpConstructResultStub V8_FINAL : public HydrogenCodeStub { |
CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE; |
virtual Major MajorKey() const V8_OVERRIDE { return RegExpConstructResult; } |
- virtual int NotMissMinorKey() const V8_OVERRIDE { return 0; } |
static void InstallDescriptors(Isolate* isolate); |
@@ -1656,7 +1665,7 @@ class CallFunctionStub: public PlatformCodeStub { |
CodeStubInterfaceDescriptor* descriptor); |
private: |
- Major MajorKey() const { return CallFunction; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return CallFunction; } |
int argc() const { return ArgcBits::decode(minor_key_); } |
int flags() const { return FlagBits::decode(minor_key_); } |
@@ -1695,7 +1704,7 @@ class CallConstructStub: public PlatformCodeStub { |
CodeStubInterfaceDescriptor* descriptor); |
private: |
- Major MajorKey() const { return CallConstruct; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return CallConstruct; } |
CallConstructorFlags flags() const { return FlagBits::decode(minor_key_); } |
@@ -1888,7 +1897,9 @@ class StringCharAtGenerator { |
class LoadDictionaryElementStub : public HydrogenCodeStub { |
public: |
explicit LoadDictionaryElementStub(Isolate* isolate) |
- : HydrogenCodeStub(isolate) {} |
+ : HydrogenCodeStub(isolate) { |
+ set_sub_minor_key(DICTIONARY_ELEMENTS); |
+ } |
virtual Handle<Code> GenerateCode() V8_OVERRIDE; |
@@ -1896,8 +1907,7 @@ class LoadDictionaryElementStub : public HydrogenCodeStub { |
CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE; |
private: |
- Major MajorKey() const { return LoadElement; } |
- int NotMissMinorKey() const { return DICTIONARY_ELEMENTS; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return LoadElement; } |
DISALLOW_COPY_AND_ASSIGN(LoadDictionaryElementStub); |
}; |
@@ -1913,7 +1923,7 @@ class LoadDictionaryElementPlatformStub : public PlatformCodeStub { |
void Generate(MacroAssembler* masm); |
private: |
- Major MajorKey() const { return LoadElement; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return LoadElement; } |
DISALLOW_COPY_AND_ASSIGN(LoadDictionaryElementPlatformStub); |
}; |
@@ -1934,8 +1944,7 @@ class KeyedLoadGenericStub : public HydrogenCodeStub { |
virtual InlineCacheState GetICState() const { return GENERIC; } |
private: |
- Major MajorKey() const { return KeyedLoadGeneric; } |
- int NotMissMinorKey() const { return 0; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return KeyedLoadGeneric; } |
DISALLOW_COPY_AND_ASSIGN(KeyedLoadGenericStub); |
}; |
@@ -2063,7 +2072,7 @@ class DoubleToIStub : public PlatformCodeStub { |
virtual bool SometimesSetsUpAFrame() { return false; } |
private: |
- Major MajorKey() const { return DoubleToI; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return DoubleToI; } |
Register source() const { |
return Register::from_code(SourceRegisterBits::decode(minor_key_)); |
@@ -2124,7 +2133,7 @@ class LoadFastElementStub : public HydrogenCodeStub { |
class IsJSArrayBits: public BitField<bool, 8, 1> {}; |
uint32_t bit_field_; |
- Major MajorKey() const { return LoadElement; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return LoadElement; } |
int NotMissMinorKey() const { return bit_field_; } |
DISALLOW_COPY_AND_ASSIGN(LoadFastElementStub); |
@@ -2164,7 +2173,7 @@ class StoreFastElementStub : public HydrogenCodeStub { |
class IsJSArrayBits: public BitField<bool, 12, 1> {}; |
uint32_t bit_field_; |
- Major MajorKey() const { return StoreElement; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return StoreElement; } |
int NotMissMinorKey() const { return bit_field_; } |
DISALLOW_COPY_AND_ASSIGN(StoreFastElementStub); |
@@ -2205,7 +2214,7 @@ class TransitionElementsKindStub : public HydrogenCodeStub { |
class IsJSArrayBits: public BitField<bool, 16, 1> {}; |
uint32_t bit_field_; |
- Major MajorKey() const { return TransitionElementsKind; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return TransitionElementsKind; } |
int NotMissMinorKey() const { return bit_field_; } |
DISALLOW_COPY_AND_ASSIGN(TransitionElementsKindStub); |
@@ -2275,7 +2284,9 @@ class ArrayNoArgumentConstructorStub : public ArrayConstructorStubBase { |
CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE; |
private: |
- Major MajorKey() const { return ArrayNoArgumentConstructor; } |
+ virtual Major MajorKey() const V8_OVERRIDE { |
+ return ArrayNoArgumentConstructor; |
+ } |
virtual void PrintName(OStream& os) const V8_OVERRIDE { // NOLINT |
BasePrintName(os, "ArrayNoArgumentConstructorStub"); |
@@ -2300,7 +2311,9 @@ class ArraySingleArgumentConstructorStub : public ArrayConstructorStubBase { |
CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE; |
private: |
- Major MajorKey() const { return ArraySingleArgumentConstructor; } |
+ virtual Major MajorKey() const V8_OVERRIDE { |
+ return ArraySingleArgumentConstructor; |
+ } |
virtual void PrintName(OStream& os) const { // NOLINT |
BasePrintName(os, "ArraySingleArgumentConstructorStub"); |
@@ -2325,7 +2338,9 @@ class ArrayNArgumentsConstructorStub : public ArrayConstructorStubBase { |
CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE; |
private: |
- Major MajorKey() const { return ArrayNArgumentsConstructor; } |
+ virtual Major MajorKey() const V8_OVERRIDE { |
+ return ArrayNArgumentsConstructor; |
+ } |
virtual void PrintName(OStream& os) const { // NOLINT |
BasePrintName(os, "ArrayNArgumentsConstructorStub"); |
@@ -2372,7 +2387,9 @@ class InternalArrayNoArgumentConstructorStub : public |
CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE; |
private: |
- Major MajorKey() const { return InternalArrayNoArgumentConstructor; } |
+ virtual Major MajorKey() const V8_OVERRIDE { |
+ return InternalArrayNoArgumentConstructor; |
+ } |
DISALLOW_COPY_AND_ASSIGN(InternalArrayNoArgumentConstructorStub); |
}; |
@@ -2391,7 +2408,9 @@ class InternalArraySingleArgumentConstructorStub : public |
CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE; |
private: |
- Major MajorKey() const { return InternalArraySingleArgumentConstructor; } |
+ virtual Major MajorKey() const V8_OVERRIDE { |
+ return InternalArraySingleArgumentConstructor; |
+ } |
DISALLOW_COPY_AND_ASSIGN(InternalArraySingleArgumentConstructorStub); |
}; |
@@ -2409,7 +2428,9 @@ class InternalArrayNArgumentsConstructorStub : public |
CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE; |
private: |
- Major MajorKey() const { return InternalArrayNArgumentsConstructor; } |
+ virtual Major MajorKey() const V8_OVERRIDE { |
+ return InternalArrayNArgumentsConstructor; |
+ } |
DISALLOW_COPY_AND_ASSIGN(InternalArrayNArgumentsConstructorStub); |
}; |
@@ -2425,7 +2446,7 @@ class StoreElementStub : public PlatformCodeStub { |
void Generate(MacroAssembler* masm); |
private: |
- Major MajorKey() const { return StoreElement; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return StoreElement; } |
ElementsKind elements_kind() const { |
return ElementsKindBits::decode(minor_key_); |
@@ -2519,7 +2540,7 @@ class ToBooleanStub: public HydrogenCodeStub { |
class TypesBits : public BitField<byte, 0, NUMBER_OF_TYPES> {}; |
class ResultModeBits : public BitField<ResultMode, NUMBER_OF_TYPES, 2> {}; |
- Major MajorKey() const { return ToBoolean; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return ToBoolean; } |
int NotMissMinorKey() const { |
return TypesBits::encode(types_.ToByte()) | ResultModeBits::encode(mode_); |
} |
@@ -2584,7 +2605,9 @@ class ElementsTransitionAndStoreStub : public HydrogenCodeStub { |
class IsJSArrayBits: public BitField<bool, 16, 1> {}; |
class StoreModeBits: public BitField<KeyedAccessStoreMode, 17, 4> {}; |
- Major MajorKey() const { return ElementsTransitionAndStore; } |
+ virtual Major MajorKey() const V8_OVERRIDE { |
+ return ElementsTransitionAndStore; |
+ } |
int NotMissMinorKey() const { |
return FromBits::encode(from_kind_) | |
ToBits::encode(to_kind_) | |
@@ -2607,7 +2630,9 @@ class StoreArrayLiteralElementStub : public PlatformCodeStub { |
: PlatformCodeStub(isolate) { } |
private: |
- Major MajorKey() const { return StoreArrayLiteralElement; } |
+ virtual Major MajorKey() const V8_OVERRIDE { |
+ return StoreArrayLiteralElement; |
+ } |
void Generate(MacroAssembler* masm); |
@@ -2625,7 +2650,7 @@ class StubFailureTrampolineStub : public PlatformCodeStub { |
static void GenerateAheadOfTime(Isolate* isolate); |
private: |
- Major MajorKey() const { return StubFailureTrampoline; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return StubFailureTrampoline; } |
StubFunctionMode function_mode() const { |
return FunctionModeField::decode(minor_key_); |
@@ -2654,7 +2679,7 @@ class ProfileEntryHookStub : public PlatformCodeStub { |
intptr_t stack_pointer, |
Isolate* isolate); |
- Major MajorKey() const { return ProfileEntryHook; } |
+ virtual Major MajorKey() const V8_OVERRIDE { return ProfileEntryHook; } |
void Generate(MacroAssembler* masm); |