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

Side by Side Diff: src/x64/code-stubs-x64.cc

Issue 97543002: Refactor BinaryOpIC to be able to use different stubs. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed comments 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
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 Isolate* isolate, 173 Isolate* isolate,
174 CodeStubInterfaceDescriptor* descriptor) { 174 CodeStubInterfaceDescriptor* descriptor) {
175 static Register registers[] = { rax, rbx }; 175 static Register registers[] = { rax, rbx };
176 descriptor->register_param_count_ = 2; 176 descriptor->register_param_count_ = 2;
177 descriptor->register_params_ = registers; 177 descriptor->register_params_ = registers;
178 descriptor->deoptimization_handler_ = 178 descriptor->deoptimization_handler_ =
179 Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry; 179 Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry;
180 } 180 }
181 181
182 182
183 void BinaryOpStub::InitializeInterfaceDescriptor( 183 void BinaryOpICStub::InitializeInterfaceDescriptor(
184 Isolate* isolate, 184 Isolate* isolate,
185 CodeStubInterfaceDescriptor* descriptor) { 185 CodeStubInterfaceDescriptor* descriptor) {
186 static Register registers[] = { rdx, rax }; 186 static Register registers[] = { rdx, rax };
187 descriptor->register_param_count_ = 2; 187 descriptor->register_param_count_ = 2;
188 descriptor->register_params_ = registers; 188 descriptor->register_params_ = registers;
189 descriptor->deoptimization_handler_ = FUNCTION_ADDR(BinaryOpIC_Miss); 189 descriptor->deoptimization_handler_ = FUNCTION_ADDR(BinaryOpIC_Miss);
190 descriptor->SetMissHandler( 190 descriptor->SetMissHandler(
191 ExternalReference(IC_Utility(IC::kBinaryOpIC_Miss), isolate)); 191 ExternalReference(IC_Utility(IC::kBinaryOpIC_Miss), isolate));
192 } 192 }
193 193
(...skipping 2587 matching lines...) Expand 10 before | Expand all | Expand 10 after
2781 } 2781 }
2782 2782
2783 2783
2784 void CodeStub::GenerateStubsAheadOfTime(Isolate* isolate) { 2784 void CodeStub::GenerateStubsAheadOfTime(Isolate* isolate) {
2785 CEntryStub::GenerateAheadOfTime(isolate); 2785 CEntryStub::GenerateAheadOfTime(isolate);
2786 StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate); 2786 StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate);
2787 StubFailureTrampolineStub::GenerateAheadOfTime(isolate); 2787 StubFailureTrampolineStub::GenerateAheadOfTime(isolate);
2788 // It is important that the store buffer overflow stubs are generated first. 2788 // It is important that the store buffer overflow stubs are generated first.
2789 ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 2789 ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
2790 CreateAllocationSiteStub::GenerateAheadOfTime(isolate); 2790 CreateAllocationSiteStub::GenerateAheadOfTime(isolate);
2791 BinaryOpStub::GenerateAheadOfTime(isolate); 2791 BinaryOpICStub::GenerateAheadOfTime(isolate);
2792 } 2792 }
2793 2793
2794 2794
2795 void CodeStub::GenerateFPStubs(Isolate* isolate) { 2795 void CodeStub::GenerateFPStubs(Isolate* isolate) {
2796 } 2796 }
2797 2797
2798 2798
2799 void CEntryStub::GenerateAheadOfTime(Isolate* isolate) { 2799 void CEntryStub::GenerateAheadOfTime(Isolate* isolate) {
2800 CEntryStub stub(1, kDontSaveFPRegs); 2800 CEntryStub stub(1, kDontSaveFPRegs);
2801 stub.GetCode(isolate); 2801 stub.GetCode(isolate);
(...skipping 2981 matching lines...) Expand 10 before | Expand all | Expand 10 after
5783 __ bind(&fast_elements_case); 5783 __ bind(&fast_elements_case);
5784 GenerateCase(masm, FAST_ELEMENTS); 5784 GenerateCase(masm, FAST_ELEMENTS);
5785 } 5785 }
5786 5786
5787 5787
5788 #undef __ 5788 #undef __
5789 5789
5790 } } // namespace v8::internal 5790 } } // namespace v8::internal
5791 5791
5792 #endif // V8_TARGET_ARCH_X64 5792 #endif // V8_TARGET_ARCH_X64
OLDNEW
« src/log.cc ('K') | « src/type-info.cc ('k') | src/x64/full-codegen-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698