Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Unified Diff: src/code-stubs.h

Issue 712973002: harmony-scoping: Implement StoreIC handler for stores to global contexts. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Comments + rebased Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/code-stubs-hydrogen.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
};
« no previous file with comments | « no previous file | src/code-stubs-hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698