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

Side by Side Diff: src/mips/stub-cache-mips.cc

Issue 91803003: Move responsibility for definition of ExtraICState bits into the ICs. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: A couple more nits. Created 7 years 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
« no previous file with comments | « src/mips/ic-mips.cc ('k') | src/objects.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 718 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 __ bind(label); 729 __ bind(label);
730 __ li(this->name(), Operand(name)); 730 __ li(this->name(), Operand(name));
731 } 731 }
732 } 732 }
733 733
734 734
735 static void GenerateCallFunction(MacroAssembler* masm, 735 static void GenerateCallFunction(MacroAssembler* masm,
736 Handle<Object> object, 736 Handle<Object> object,
737 const ParameterCount& arguments, 737 const ParameterCount& arguments,
738 Label* miss, 738 Label* miss,
739 Code::ExtraICState extra_ic_state) { 739 ExtraICState extra_ic_state) {
740 // ----------- S t a t e ------------- 740 // ----------- S t a t e -------------
741 // -- a0: receiver 741 // -- a0: receiver
742 // -- a1: function to call 742 // -- a1: function to call
743 // ----------------------------------- 743 // -----------------------------------
744 // Check that the function really is a function. 744 // Check that the function really is a function.
745 __ JumpIfSmi(a1, miss); 745 __ JumpIfSmi(a1, miss);
746 __ GetObjectType(a1, a3, a3); 746 __ GetObjectType(a1, a3, a3);
747 __ Branch(miss, ne, a3, Operand(JS_FUNCTION_TYPE)); 747 __ Branch(miss, ne, a3, Operand(JS_FUNCTION_TYPE));
748 748
749 // Patch the receiver on the stack with the global proxy if 749 // Patch the receiver on the stack with the global proxy if
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
938 938
939 GenerateFastApiDirectCall(masm, optimization, argc, true); 939 GenerateFastApiDirectCall(masm, optimization, argc, true);
940 } 940 }
941 941
942 942
943 class CallInterceptorCompiler BASE_EMBEDDED { 943 class CallInterceptorCompiler BASE_EMBEDDED {
944 public: 944 public:
945 CallInterceptorCompiler(StubCompiler* stub_compiler, 945 CallInterceptorCompiler(StubCompiler* stub_compiler,
946 const ParameterCount& arguments, 946 const ParameterCount& arguments,
947 Register name, 947 Register name,
948 Code::ExtraICState extra_ic_state) 948 ExtraICState extra_ic_state)
949 : stub_compiler_(stub_compiler), 949 : stub_compiler_(stub_compiler),
950 arguments_(arguments), 950 arguments_(arguments),
951 name_(name), 951 name_(name),
952 extra_ic_state_(extra_ic_state) {} 952 extra_ic_state_(extra_ic_state) {}
953 953
954 void Compile(MacroAssembler* masm, 954 void Compile(MacroAssembler* masm,
955 Handle<JSObject> object, 955 Handle<JSObject> object,
956 Handle<JSObject> holder, 956 Handle<JSObject> holder,
957 Handle<Name> name, 957 Handle<Name> name,
958 LookupResult* lookup, 958 LookupResult* lookup,
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
1122 __ pop(receiver); // Restore the holder. 1122 __ pop(receiver); // Restore the holder.
1123 } 1123 }
1124 // If interceptor returns no-result sentinel, call the constant function. 1124 // If interceptor returns no-result sentinel, call the constant function.
1125 __ LoadRoot(scratch, Heap::kNoInterceptorResultSentinelRootIndex); 1125 __ LoadRoot(scratch, Heap::kNoInterceptorResultSentinelRootIndex);
1126 __ Branch(interceptor_succeeded, ne, v0, Operand(scratch)); 1126 __ Branch(interceptor_succeeded, ne, v0, Operand(scratch));
1127 } 1127 }
1128 1128
1129 StubCompiler* stub_compiler_; 1129 StubCompiler* stub_compiler_;
1130 const ParameterCount& arguments_; 1130 const ParameterCount& arguments_;
1131 Register name_; 1131 Register name_;
1132 Code::ExtraICState extra_ic_state_; 1132 ExtraICState extra_ic_state_;
1133 }; 1133 };
1134 1134
1135 1135
1136 void StubCompiler::GenerateTailCall(MacroAssembler* masm, Handle<Code> code) { 1136 void StubCompiler::GenerateTailCall(MacroAssembler* masm, Handle<Code> code) {
1137 __ Jump(code, RelocInfo::CODE_TARGET); 1137 __ Jump(code, RelocInfo::CODE_TARGET);
1138 } 1138 }
1139 1139
1140 1140
1141 #undef __ 1141 #undef __
1142 #define __ ACCESS_MASM(masm()) 1142 #define __ ACCESS_MASM(masm())
(...skipping 2034 matching lines...) Expand 10 before | Expand all | Expand 10 after
3177 // ----------------------------------- 3177 // -----------------------------------
3178 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); 3178 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss);
3179 } 3179 }
3180 3180
3181 3181
3182 #undef __ 3182 #undef __
3183 3183
3184 } } // namespace v8::internal 3184 } } // namespace v8::internal
3185 3185
3186 #endif // V8_TARGET_ARCH_MIPS 3186 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « src/mips/ic-mips.cc ('k') | src/objects.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698