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

Unified Diff: src/ic.h

Issue 223823002: Revert r20474 (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 9 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
« no previous file with comments | « src/ia32/lithium-codegen-ia32.cc ('k') | src/ic.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ic.h
diff --git a/src/ic.h b/src/ic.h
index 904ab184d231f34b6d831bd25b0869e3099540d3..41882e66890809936332c66762d85094bd4756c4 100644
--- a/src/ic.h
+++ b/src/ic.h
@@ -42,7 +42,6 @@ const int kMaxKeyedPolymorphism = 4;
#define IC_UTIL_LIST(ICU) \
ICU(LoadIC_Miss) \
ICU(KeyedLoadIC_Miss) \
- ICU(CallIC_Miss) \
ICU(StoreIC_Miss) \
ICU(StoreIC_ArrayLength) \
ICU(StoreIC_Slow) \
@@ -120,10 +119,6 @@ class IC {
bool IsStoreStub() const {
return target()->is_store_stub() || target()->is_keyed_store_stub();
}
-
- bool IsCallStub() const {
- return target()->is_call_stub();
- }
#endif
// Determines which map must be used for keeping the code stub.
@@ -344,128 +339,6 @@ class IC_Utility {
};
-class CallIC: public IC {
- public:
- enum CallType { METHOD, FUNCTION };
- enum StubType { DEFAULT, MONOMORPHIC };
- enum ArgumentCheck { ARGUMENTS_MUST_MATCH, ARGUMENTS_COUNT_UNKNOWN };
-
- class State V8_FINAL BASE_EMBEDDED {
- public:
- explicit State(ExtraICState extra_ic_state);
-
- static State MonomorphicCallState(int argc, CallType call_type,
- ArgumentCheck argument_check,
- StrictMode strict_mode) {
- return State(argc, call_type, MONOMORPHIC, argument_check, strict_mode);
- }
-
- static State SlowCallState(int argc, CallType call_type) {
- return State(argc, call_type, DEFAULT, ARGUMENTS_COUNT_UNKNOWN,
- SLOPPY);
- }
-
- static State DefaultCallState(int argc, CallType call_type) {
- return State(argc, call_type, DEFAULT, ARGUMENTS_MUST_MATCH,
- SLOPPY);
- }
-
- // Transition from the current state to another.
- State ToGenericState();
- State ToMonomorphicState(Handle<JSFunction> function);
-
- InlineCacheState GetICState() const {
- return stub_type_ == CallIC::MONOMORPHIC
- ? ::v8::internal::MONOMORPHIC
- : ::v8::internal::GENERIC;
- }
-
- ExtraICState GetExtraICState() const;
-
- static void GenerateAheadOfTime(
- Isolate*, void (*Generate)(Isolate*, const State&));
-
- int arg_count() const { return argc_; }
- CallType call_type() const { return call_type_; }
- StubType stub_type() const { return stub_type_; }
- ArgumentCheck argument_check() const { return argument_check_; }
- StrictMode strict_mode() const {
- return strict_mode_;
- }
-
- bool ArgumentsMustMatch() const {
- return argument_check_ == ARGUMENTS_MUST_MATCH;
- }
- bool IsGeneric() const { return stub_type_ == DEFAULT; }
- bool CallAsMethod() const { return call_type_ == METHOD; }
- bool IsSloppy() const {
- return strict_mode_ == SLOPPY;
- }
-
- void Print(StringStream* stream) const;
-
- bool operator==(const State& other_state) const {
- return (argc_ == other_state.argc_ &&
- call_type_ == other_state.call_type_ &&
- stub_type_ == other_state.stub_type_ &&
- argument_check_ == other_state.argument_check_ &&
- strict_mode_ == other_state.strict_mode_);
- }
-
- bool operator!=(const State& other_state) const {
- return !(*this == other_state);
- }
-
- private:
- State(int argc,
- CallType call_type,
- StubType stub_type,
- ArgumentCheck argument_check,
- StrictMode strict_mode)
- : argc_(argc),
- call_type_(call_type),
- stub_type_(stub_type),
- argument_check_(argument_check),
- strict_mode_(strict_mode) {
- }
-
- class ArgcBits: public BitField<int, 0, Code::kArgumentsBits> {};
- class CallTypeBits: public BitField<CallType, Code::kArgumentsBits, 1> {};
- class StubTypeBits:
- public BitField<StubType, Code::kArgumentsBits + 1, 1> {}; // NOLINT
- class ArgumentCheckBits:
- public BitField<ArgumentCheck,
- Code::kArgumentsBits + 2, 1> {}; // NOLINT
- class StrictModeBits:
- public BitField<StrictMode,
- Code::kArgumentsBits + 3, 1> {}; // NOLINT
-
- const int argc_;
- const CallType call_type_;
- const StubType stub_type_;
- const ArgumentCheck argument_check_;
- const StrictMode strict_mode_;
- };
-
- explicit CallIC(Isolate* isolate)
- : IC(EXTRA_CALL_FRAME, isolate) {
- }
-
- void HandleMiss(Handle<Object> receiver,
- Handle<Object> function,
- Handle<FixedArray> vector,
- Handle<Smi> slot);
-
- // Code generator routines.
- static Handle<Code> initialize_stub(Isolate* isolate,
- int argc,
- CallType call_type);
-
- static void Clear(Isolate* isolate, Address address, Code* target,
- ConstantPoolArray* constant_pool);
-};
-
-
class LoadIC: public IC {
public:
// ExtraICState bits
« no previous file with comments | « src/ia32/lithium-codegen-ia32.cc ('k') | src/ic.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698