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

Unified Diff: src/code-stubs.h

Issue 2031753003: [stubs] Introducing LoadICTFStub and LoadICTrampolineTFStub and a switch to enable them instead of … (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Addressing comments Created 4 years, 6 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 7ac7a4d07774fa82ece50f535cb9405a070643b0..7f35e98414b754c4d31ac4ec4bdf603fb9bac47d 100644
--- a/src/code-stubs.h
+++ b/src/code-stubs.h
@@ -139,6 +139,8 @@ namespace internal {
V(ToInteger) \
V(ToLength) \
V(HasProperty) \
+ V(LoadICTrampolineTF) \
+ V(LoadICTF) \
/* IC Handler stubs */ \
V(ArrayBufferViewLoadField) \
V(KeyedLoadSloppyArguments) \
@@ -2384,6 +2386,31 @@ class LoadICTrampolineStub : public PlatformCodeStub {
DEFINE_PLATFORM_CODE_STUB(LoadICTrampoline, PlatformCodeStub);
};
+class LoadICTrampolineTFStub : public TurboFanCodeStub {
+ public:
+ LoadICTrampolineTFStub(Isolate* isolate, const LoadICState& state)
+ : TurboFanCodeStub(isolate) {
+ minor_key_ = state.GetExtraICState();
+ }
+
+ void GenerateAssembly(CodeStubAssembler* assembler) const override;
+
+ Code::Kind GetCodeKind() const override { return Code::LOAD_IC; }
+
+ InlineCacheState GetICState() const final { return GENERIC; }
+
+ ExtraICState GetExtraICState() const final {
+ return static_cast<ExtraICState>(minor_key_);
+ }
+
+ protected:
+ LoadICState state() const {
+ return LoadICState(static_cast<ExtraICState>(minor_key_));
+ }
+
+ DEFINE_CALL_INTERFACE_DESCRIPTOR(Load);
+ DEFINE_CODE_STUB(LoadICTrampolineTF, TurboFanCodeStub);
+};
class KeyedLoadICTrampolineStub : public LoadICTrampolineStub {
public:
@@ -2481,6 +2508,24 @@ class LoadICStub : public PlatformCodeStub {
void GenerateImpl(MacroAssembler* masm, bool in_frame);
};
+class LoadICTFStub : public TurboFanCodeStub {
+ public:
+ explicit LoadICTFStub(Isolate* isolate, const LoadICState& state)
+ : TurboFanCodeStub(isolate) {
+ minor_key_ = state.GetExtraICState();
+ }
+
+ void GenerateAssembly(CodeStubAssembler* assembler) const override;
+
+ Code::Kind GetCodeKind() const override { return Code::LOAD_IC; }
+ InlineCacheState GetICState() const final { return GENERIC; }
+ ExtraICState GetExtraICState() const final {
+ return static_cast<ExtraICState>(minor_key_);
+ }
+
+ DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadWithVector);
+ DEFINE_CODE_STUB(LoadICTF, TurboFanCodeStub);
+};
class KeyedLoadICStub : public PlatformCodeStub {
public:

Powered by Google App Engine
This is Rietveld 408576698