Index: src/code-stubs.h |
diff --git a/src/code-stubs.h b/src/code-stubs.h |
index 03075d92372fe7da40c6244ab42d0c2cd3e80b38..b5ea4427c3369c91190e7c95c08fb16c06a54d58 100644 |
--- a/src/code-stubs.h |
+++ b/src/code-stubs.h |
@@ -39,6 +39,8 @@ namespace internal { |
V(JSEntry) \ |
V(KeyedLoadICTrampoline) \ |
V(LoadICTrampoline) \ |
+ V(CallICTrampoline) \ |
+ V(CallIC_ArrayTrampoline) \ |
V(LoadIndexedInterceptor) \ |
V(LoadIndexedString) \ |
V(MathPow) \ |
@@ -829,7 +831,7 @@ class CallICStub: public PlatformCodeStub { |
private: |
void PrintState(std::ostream& os) const OVERRIDE; // NOLINT |
- DEFINE_CALL_INTERFACE_DESCRIPTOR(CallFunctionWithFeedback); |
+ DEFINE_CALL_INTERFACE_DESCRIPTOR(CallFunctionWithFeedbackAndVector); |
DEFINE_PLATFORM_CODE_STUB(CallIC, PlatformCodeStub); |
}; |
@@ -1938,6 +1940,41 @@ class KeyedLoadICTrampolineStub : public LoadICTrampolineStub { |
}; |
+class CallICTrampolineStub : public PlatformCodeStub { |
+ public: |
+ CallICTrampolineStub(Isolate* isolate, const CallICState& state) |
+ : PlatformCodeStub(isolate) { |
+ minor_key_ = state.GetExtraICState(); |
+ } |
+ |
+ Code::Kind GetCodeKind() const OVERRIDE { return Code::CALL_IC; } |
+ |
+ InlineCacheState GetICState() const FINAL { return DEFAULT; } |
+ |
+ ExtraICState GetExtraICState() const FINAL { |
+ return static_cast<ExtraICState>(minor_key_); |
+ } |
+ |
+ protected: |
+ CallICState state() const { |
+ return CallICState(static_cast<ExtraICState>(minor_key_)); |
+ } |
+ |
+ DEFINE_CALL_INTERFACE_DESCRIPTOR(CallFunctionWithFeedback); |
+ DEFINE_PLATFORM_CODE_STUB(CallICTrampoline, PlatformCodeStub); |
+}; |
+ |
+ |
+class CallIC_ArrayTrampolineStub : public CallICTrampolineStub { |
+ public: |
+ CallIC_ArrayTrampolineStub(Isolate* isolate, const CallICState& state) |
+ : CallICTrampolineStub(isolate, state) {} |
+ |
+ private: |
+ DEFINE_PLATFORM_CODE_STUB(CallIC_ArrayTrampoline, CallICTrampolineStub); |
+}; |
+ |
+ |
class MegamorphicLoadStub : public HydrogenCodeStub { |
public: |
MegamorphicLoadStub(Isolate* isolate, const LoadICState& state) |