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

Side by Side Diff: src/stub-cache.h

Issue 12700006: Replace ICStub for array.length with hydrogen stub (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: New patch Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 Handle<JSObject> holder, 119 Handle<JSObject> holder,
120 Handle<JSFunction> value); 120 Handle<JSFunction> value);
121 121
122 Handle<Code> ComputeLoadInterceptor(Handle<Name> name, 122 Handle<Code> ComputeLoadInterceptor(Handle<Name> name,
123 Handle<JSObject> object, 123 Handle<JSObject> object,
124 Handle<JSObject> holder); 124 Handle<JSObject> holder);
125 125
126 Handle<Code> ComputeLoadNormal(Handle<Name> name, 126 Handle<Code> ComputeLoadNormal(Handle<Name> name,
127 Handle<JSObject> object); 127 Handle<JSObject> object);
128 128
129 Handle<Code> ComputeLoadArrayLength(Handle<Name> name,
130 Handle<JSObject> object,
131 Handle<JSObject> holder);
132
129 Handle<Code> ComputeLoadGlobal(Handle<Name> name, 133 Handle<Code> ComputeLoadGlobal(Handle<Name> name,
130 Handle<JSObject> object, 134 Handle<JSObject> object,
131 Handle<GlobalObject> holder, 135 Handle<GlobalObject> holder,
132 Handle<JSGlobalPropertyCell> cell, 136 Handle<JSGlobalPropertyCell> cell,
133 bool is_dont_delete); 137 bool is_dont_delete);
134 138
135 // --- 139 // ---
136 140
137 Handle<Code> ComputeKeyedLoadField(Handle<Name> name, 141 Handle<Code> ComputeKeyedLoadField(Handle<Name> name,
138 Handle<JSObject> object, 142 Handle<JSObject> object,
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 public: 597 public:
594 BaseLoadStubCompiler(Isolate* isolate, Register* registers) 598 BaseLoadStubCompiler(Isolate* isolate, Register* registers)
595 : StubCompiler(isolate), registers_(registers) { } 599 : StubCompiler(isolate), registers_(registers) { }
596 virtual ~BaseLoadStubCompiler() { } 600 virtual ~BaseLoadStubCompiler() { }
597 601
598 Handle<Code> CompileLoadField(Handle<JSObject> object, 602 Handle<Code> CompileLoadField(Handle<JSObject> object,
599 Handle<JSObject> holder, 603 Handle<JSObject> holder,
600 Handle<Name> name, 604 Handle<Name> name,
601 PropertyIndex index); 605 PropertyIndex index);
602 606
607 Handle<Code> CompileArrayLength(Handle<JSObject> object,
608 Handle<JSObject> holder,
609 Handle<Name> name);
610
603 Handle<Code> CompileLoadCallback(Handle<JSObject> object, 611 Handle<Code> CompileLoadCallback(Handle<JSObject> object,
604 Handle<JSObject> holder, 612 Handle<JSObject> holder,
605 Handle<Name> name, 613 Handle<Name> name,
606 Handle<ExecutableAccessorInfo> callback); 614 Handle<ExecutableAccessorInfo> callback);
607 615
608 Handle<Code> CompileLoadConstant(Handle<JSObject> object, 616 Handle<Code> CompileLoadConstant(Handle<JSObject> object,
609 Handle<JSObject> holder, 617 Handle<JSObject> holder,
610 Handle<Name> name, 618 Handle<Name> name,
611 Handle<JSFunction> value); 619 Handle<JSFunction> value);
612 620
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 Handle<JSFunction> getter); 718 Handle<JSFunction> getter);
711 719
712 Handle<Code> CompileLoadGlobal(Handle<JSObject> object, 720 Handle<Code> CompileLoadGlobal(Handle<JSObject> object,
713 Handle<GlobalObject> holder, 721 Handle<GlobalObject> holder,
714 Handle<JSGlobalPropertyCell> cell, 722 Handle<JSGlobalPropertyCell> cell,
715 Handle<Name> name, 723 Handle<Name> name,
716 bool is_dont_delete); 724 bool is_dont_delete);
717 725
718 static Register receiver() { return registers()[0]; } 726 static Register receiver() { return registers()[0]; }
719 727
728 static Register name() { return registers()[1]; }
729
720 private: 730 private:
721 static Register* registers(); 731 static Register* registers();
722 virtual Code::Kind kind() { return Code::LOAD_IC; } 732 virtual Code::Kind kind() { return Code::LOAD_IC; }
723 virtual Logger::LogEventsAndTags log_kind(Handle<Code> code) { 733 virtual Logger::LogEventsAndTags log_kind(Handle<Code> code) {
724 if (!code->is_inline_cache_stub()) return Logger::STUB_TAG; 734 if (!code->is_inline_cache_stub()) return Logger::STUB_TAG;
725 return code->ic_state() == MONOMORPHIC 735 return code->ic_state() == MONOMORPHIC
726 ? Logger::LOAD_IC_TAG : Logger::LOAD_POLYMORPHIC_IC_TAG; 736 ? Logger::LOAD_IC_TAG : Logger::LOAD_POLYMORPHIC_IC_TAG;
727 } 737 }
728 virtual void JitEvent(Handle<Name> name, Handle<Code> code); 738 virtual void JitEvent(Handle<Name> name, Handle<Code> code);
729 }; 739 };
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
1007 Handle<JSFunction> constant_function_; 1017 Handle<JSFunction> constant_function_;
1008 bool is_simple_api_call_; 1018 bool is_simple_api_call_;
1009 Handle<FunctionTemplateInfo> expected_receiver_type_; 1019 Handle<FunctionTemplateInfo> expected_receiver_type_;
1010 Handle<CallHandlerInfo> api_call_info_; 1020 Handle<CallHandlerInfo> api_call_info_;
1011 }; 1021 };
1012 1022
1013 1023
1014 } } // namespace v8::internal 1024 } } // namespace v8::internal
1015 1025
1016 #endif // V8_STUB_CACHE_H_ 1026 #endif // V8_STUB_CACHE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698