| Index: src/code-stubs.h
|
| diff --git a/src/code-stubs.h b/src/code-stubs.h
|
| index 433e97aff092c4f00ae0ec6e334dac179c9d2e83..4166d3daa6484b18f7318130d8bcb42f39586176 100644
|
| --- a/src/code-stubs.h
|
| +++ b/src/code-stubs.h
|
| @@ -77,6 +77,7 @@ namespace internal {
|
| V(NumberToString) \
|
| V(RegExpConstructResult) \
|
| V(StoreFastElement) \
|
| + V(StoreGlobalContextField) \
|
| V(StringAdd) \
|
| V(ToBoolean) \
|
| V(TransitionElementsKind) \
|
| @@ -2017,10 +2018,10 @@ class DoubleToIStub : public PlatformCodeStub {
|
| };
|
|
|
|
|
| -class LoadGlobalContextFieldStub : public HandlerStub {
|
| +class GlobalContextFieldStub : public HandlerStub {
|
| public:
|
| - LoadGlobalContextFieldStub(
|
| - Isolate* isolate, const GlobalContextTable::LookupResult* lookup_result)
|
| + GlobalContextFieldStub(Isolate* isolate,
|
| + const GlobalContextTable::LookupResult* lookup_result)
|
| : HandlerStub(isolate) {
|
| DCHECK(Accepted(lookup_result));
|
| set_sub_minor_key(ContextIndexBits::encode(lookup_result->context_index) |
|
| @@ -2045,15 +2046,35 @@ class LoadGlobalContextFieldStub : public HandlerStub {
|
| class SlotIndexBits
|
| : public BitField<int, kContextIndexBits, kSlotIndexBits> {};
|
|
|
| - virtual Code::Kind kind() const { return Code::LOAD_IC; }
|
| virtual Code::StubType GetStubType() OVERRIDE { return Code::FAST; }
|
|
|
| + DEFINE_CODE_STUB_BASE(GlobalContextFieldStub, HandlerStub);
|
| +};
|
|
|
| - virtual CallInterfaceDescriptor GetCallInterfaceDescriptor() OVERRIDE {
|
| - return ContextOnlyDescriptor(isolate());
|
| - }
|
|
|
| - DEFINE_HANDLER_CODE_STUB(LoadGlobalContextField, HandlerStub);
|
| +class LoadGlobalContextFieldStub : public GlobalContextFieldStub {
|
| + public:
|
| + LoadGlobalContextFieldStub(
|
| + Isolate* isolate, const GlobalContextTable::LookupResult* lookup_result)
|
| + : GlobalContextFieldStub(isolate, lookup_result) {}
|
| +
|
| + private:
|
| + virtual Code::Kind kind() const OVERRIDE { return Code::LOAD_IC; }
|
| +
|
| + DEFINE_HANDLER_CODE_STUB(LoadGlobalContextField, GlobalContextFieldStub);
|
| +};
|
| +
|
| +
|
| +class StoreGlobalContextFieldStub : public GlobalContextFieldStub {
|
| + public:
|
| + StoreGlobalContextFieldStub(
|
| + Isolate* isolate, const GlobalContextTable::LookupResult* lookup_result)
|
| + : GlobalContextFieldStub(isolate, lookup_result) {}
|
| +
|
| + private:
|
| + virtual Code::Kind kind() const OVERRIDE { return Code::STORE_IC; }
|
| +
|
| + DEFINE_HANDLER_CODE_STUB(StoreGlobalContextField, GlobalContextFieldStub);
|
| };
|
|
|
|
|
|
|