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

Unified Diff: src/code-stubs.h

Issue 1238143002: [stubs] Optimize LoadGlobalViaContextStub and StoreGlobalViaContextStub. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix ARM typo. Created 5 years, 5 months 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
Index: src/code-stubs.h
diff --git a/src/code-stubs.h b/src/code-stubs.h
index f83e736407a8c3e2294808e997a765d63b857575..372b788fee1a2d9b9f2c4fb6748a7d7600e218b7 100644
--- a/src/code-stubs.h
+++ b/src/code-stubs.h
@@ -1396,57 +1396,50 @@ class StoreGlobalStub : public HandlerStub {
};
-class LoadGlobalViaContextStub : public HydrogenCodeStub {
+class LoadGlobalViaContextStub final : public PlatformCodeStub {
public:
- // Use the loop version for depths higher than this one.
- static const int kDynamicDepth = 7;
+ static const int kMaximumDepth = 15;
LoadGlobalViaContextStub(Isolate* isolate, int depth)
- : HydrogenCodeStub(isolate) {
- if (depth > kDynamicDepth) depth = kDynamicDepth;
- set_sub_minor_key(DepthBits::encode(depth));
+ : PlatformCodeStub(isolate) {
+ minor_key_ = DepthBits::encode(depth);
}
- int depth() const { return DepthBits::decode(sub_minor_key()); }
+ int depth() const { return DepthBits::decode(minor_key_); }
private:
- class DepthBits : public BitField<unsigned int, 0, 3> {};
- STATIC_ASSERT(kDynamicDepth <= DepthBits::kMax);
+ class DepthBits : public BitField<int, 0, 4> {};
+ STATIC_ASSERT(DepthBits::kMax == kMaximumDepth);
DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadGlobalViaContext);
- DEFINE_HYDROGEN_CODE_STUB(LoadGlobalViaContext, HydrogenCodeStub);
+ DEFINE_PLATFORM_CODE_STUB(LoadGlobalViaContext, PlatformCodeStub);
};
-class StoreGlobalViaContextStub : public HydrogenCodeStub {
+class StoreGlobalViaContextStub final : public PlatformCodeStub {
public:
- // Use the loop version for depths higher than this one.
- static const int kDynamicDepth = 7;
+ static const int kMaximumDepth = 15;
StoreGlobalViaContextStub(Isolate* isolate, int depth,
LanguageMode language_mode)
- : HydrogenCodeStub(isolate) {
- if (depth > kDynamicDepth) depth = kDynamicDepth;
- set_sub_minor_key(DepthBits::encode(depth) |
- LanguageModeBits::encode(language_mode));
+ : PlatformCodeStub(isolate) {
+ minor_key_ =
+ DepthBits::encode(depth) | LanguageModeBits::encode(language_mode);
}
- int depth() const { return DepthBits::decode(sub_minor_key()); }
-
+ int depth() const { return DepthBits::decode(minor_key_); }
LanguageMode language_mode() const {
- return LanguageModeBits::decode(sub_minor_key());
+ return LanguageModeBits::decode(minor_key_);
}
private:
- class DepthBits : public BitField<unsigned int, 0, 4> {};
- STATIC_ASSERT(kDynamicDepth <= DepthBits::kMax);
-
+ class DepthBits : public BitField<int, 0, 4> {};
+ STATIC_ASSERT(DepthBits::kMax == kMaximumDepth);
class LanguageModeBits : public BitField<LanguageMode, 4, 2> {};
STATIC_ASSERT(LANGUAGE_END == 3);
- private:
DEFINE_CALL_INTERFACE_DESCRIPTOR(StoreGlobalViaContext);
- DEFINE_HYDROGEN_CODE_STUB(StoreGlobalViaContext, HydrogenCodeStub);
+ DEFINE_PLATFORM_CODE_STUB(StoreGlobalViaContext, PlatformCodeStub);
};

Powered by Google App Engine
This is Rietveld 408576698