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

Side by Side Diff: src/ic/handler-compiler.cc

Issue 2595343002: [stubs] Port LoadFieldStub to TF (Closed)
Patch Set: Remerge Created 3 years, 12 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
« no previous file with comments | « src/ic/accessor-assembler-impl.h ('k') | src/ic/ic.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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/ic/handler-compiler.h" 5 #include "src/ic/handler-compiler.h"
6 6
7 #include "src/field-type.h" 7 #include "src/field-type.h"
8 #include "src/ic/call-optimization.h" 8 #include "src/ic/call-optimization.h"
9 #include "src/ic/handler-configuration-inl.h" 9 #include "src/ic/handler-configuration-inl.h"
10 #include "src/ic/ic-inl.h" 10 #include "src/ic/ic-inl.h"
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 switch (it->state()) { 382 switch (it->state()) {
383 case LookupIterator::ACCESS_CHECK: 383 case LookupIterator::ACCESS_CHECK:
384 case LookupIterator::INTERCEPTOR: 384 case LookupIterator::INTERCEPTOR:
385 case LookupIterator::JSPROXY: 385 case LookupIterator::JSPROXY:
386 case LookupIterator::NOT_FOUND: 386 case LookupIterator::NOT_FOUND:
387 case LookupIterator::INTEGER_INDEXED_EXOTIC: 387 case LookupIterator::INTEGER_INDEXED_EXOTIC:
388 case LookupIterator::TRANSITION: 388 case LookupIterator::TRANSITION:
389 UNREACHABLE(); 389 UNREACHABLE();
390 case LookupIterator::DATA: { 390 case LookupIterator::DATA: {
391 DCHECK_EQ(DATA, it->property_details().type()); 391 DCHECK_EQ(DATA, it->property_details().type());
392 __ Move(receiver(), reg); 392 __ Move(LoadFieldDescriptor::ReceiverRegister(), reg);
393 LoadFieldStub stub(isolate(), it->GetFieldIndex()); 393 Handle<Object> smi_handler =
394 LoadIC::SimpleFieldLoad(isolate(), it->GetFieldIndex());
395 __ Move(LoadFieldDescriptor::SmiHandlerRegister(), smi_handler);
396 LoadFieldStub stub(isolate());
394 GenerateTailCall(masm(), stub.GetCode()); 397 GenerateTailCall(masm(), stub.GetCode());
395 break; 398 break;
396 } 399 }
397 case LookupIterator::ACCESSOR: 400 case LookupIterator::ACCESSOR:
398 if (it->GetAccessors()->IsAccessorInfo()) { 401 if (it->GetAccessors()->IsAccessorInfo()) {
399 Handle<AccessorInfo> info = 402 Handle<AccessorInfo> info =
400 Handle<AccessorInfo>::cast(it->GetAccessors()); 403 Handle<AccessorInfo>::cast(it->GetAccessors());
401 DCHECK_NOT_NULL(info->getter()); 404 DCHECK_NOT_NULL(info->getter());
402 GenerateLoadCallback(reg, info); 405 GenerateLoadCallback(reg, info);
403 } else { 406 } else {
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 } 498 }
496 499
497 void ElementHandlerCompiler::CompileElementHandlers( 500 void ElementHandlerCompiler::CompileElementHandlers(
498 MapHandleList* receiver_maps, List<Handle<Object>>* handlers) { 501 MapHandleList* receiver_maps, List<Handle<Object>>* handlers) {
499 for (int i = 0; i < receiver_maps->length(); ++i) { 502 for (int i = 0; i < receiver_maps->length(); ++i) {
500 handlers->Add(GetKeyedLoadHandler(receiver_maps->at(i), isolate())); 503 handlers->Add(GetKeyedLoadHandler(receiver_maps->at(i), isolate()));
501 } 504 }
502 } 505 }
503 } // namespace internal 506 } // namespace internal
504 } // namespace v8 507 } // namespace v8
OLDNEW
« no previous file with comments | « src/ic/accessor-assembler-impl.h ('k') | src/ic/ic.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698