| Index: src/code-stubs.h
|
| diff --git a/src/code-stubs.h b/src/code-stubs.h
|
| index f370ce64735e994c84591d0316967d45c1cd9cd8..4f3020ed5d411af61ed2529151c0e1a37eccad17 100644
|
| --- a/src/code-stubs.h
|
| +++ b/src/code-stubs.h
|
| @@ -67,7 +67,6 @@ namespace internal {
|
| V(ArraySingleArgumentConstructor) \
|
| V(BinaryOpIC) \
|
| V(BinaryOpWithAllocationSite) \
|
| - V(CompareNilIC) \
|
| V(CreateAllocationSite) \
|
| V(CreateWeakCell) \
|
| V(ElementsTransitionAndStore) \
|
| @@ -1701,96 +1700,6 @@ class CompareICStub : public PlatformCodeStub {
|
| };
|
|
|
|
|
| -class CompareNilICStub : public HydrogenCodeStub {
|
| - public:
|
| - Type* GetType(Zone* zone, Handle<Map> map = Handle<Map>());
|
| - Type* GetInputType(Zone* zone, Handle<Map> map);
|
| -
|
| - CompareNilICStub(Isolate* isolate, NilValue nil) : HydrogenCodeStub(isolate) {
|
| - set_sub_minor_key(NilValueBits::encode(nil));
|
| - }
|
| -
|
| - CompareNilICStub(Isolate* isolate, ExtraICState ic_state,
|
| - InitializationState init_state = INITIALIZED)
|
| - : HydrogenCodeStub(isolate, init_state) {
|
| - set_sub_minor_key(ic_state);
|
| - }
|
| -
|
| - static Handle<Code> GetUninitialized(Isolate* isolate,
|
| - NilValue nil) {
|
| - return CompareNilICStub(isolate, nil, UNINITIALIZED).GetCode();
|
| - }
|
| -
|
| - InlineCacheState GetICState() const override {
|
| - State state = this->state();
|
| - if (state.Contains(GENERIC)) {
|
| - return MEGAMORPHIC;
|
| - } else if (state.Contains(MONOMORPHIC_MAP)) {
|
| - return MONOMORPHIC;
|
| - } else {
|
| - return PREMONOMORPHIC;
|
| - }
|
| - }
|
| -
|
| - Code::Kind GetCodeKind() const override { return Code::COMPARE_NIL_IC; }
|
| -
|
| - ExtraICState GetExtraICState() const override { return sub_minor_key(); }
|
| -
|
| - void UpdateStatus(Handle<Object> object);
|
| -
|
| - bool IsMonomorphic() const { return state().Contains(MONOMORPHIC_MAP); }
|
| -
|
| - NilValue nil_value() const { return NilValueBits::decode(sub_minor_key()); }
|
| -
|
| - void ClearState() {
|
| - set_sub_minor_key(TypesBits::update(sub_minor_key(), 0));
|
| - }
|
| -
|
| - void PrintState(std::ostream& os) const override; // NOLINT
|
| - void PrintBaseName(std::ostream& os) const override; // NOLINT
|
| -
|
| - private:
|
| - CompareNilICStub(Isolate* isolate, NilValue nil,
|
| - InitializationState init_state)
|
| - : HydrogenCodeStub(isolate, init_state) {
|
| - set_sub_minor_key(NilValueBits::encode(nil));
|
| - }
|
| -
|
| - enum CompareNilType {
|
| - UNDEFINED,
|
| - NULL_TYPE,
|
| - MONOMORPHIC_MAP,
|
| - GENERIC,
|
| - NUMBER_OF_TYPES
|
| - };
|
| -
|
| - // At most 6 different types can be distinguished, because the Code object
|
| - // only has room for a single byte to hold a set and there are two more
|
| - // boolean flags we need to store. :-P
|
| - STATIC_ASSERT(NUMBER_OF_TYPES <= 6);
|
| -
|
| - class State : public EnumSet<CompareNilType, byte> {
|
| - public:
|
| - State() : EnumSet<CompareNilType, byte>(0) { }
|
| - explicit State(byte bits) : EnumSet<CompareNilType, byte>(bits) { }
|
| - };
|
| - friend std::ostream& operator<<(std::ostream& os, const State& s);
|
| -
|
| - State state() const { return State(TypesBits::decode(sub_minor_key())); }
|
| -
|
| - class NilValueBits : public BitField<NilValue, 0, 1> {};
|
| - class TypesBits : public BitField<byte, 1, NUMBER_OF_TYPES> {};
|
| -
|
| - friend class CompareNilIC;
|
| -
|
| - DEFINE_CALL_INTERFACE_DESCRIPTOR(CompareNil);
|
| - DEFINE_HYDROGEN_CODE_STUB(CompareNilIC, HydrogenCodeStub);
|
| -};
|
| -
|
| -
|
| -std::ostream& operator<<(std::ostream& os, const CompareNilICStub::State& s);
|
| -
|
| -
|
| class CEntryStub : public PlatformCodeStub {
|
| public:
|
| CEntryStub(Isolate* isolate, int result_size,
|
|
|