OLD | NEW |
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 #if V8_TARGET_ARCH_X64 | 5 #if V8_TARGET_ARCH_X64 |
6 | 6 |
7 #include "src/ic/handler-compiler.h" | 7 #include "src/ic/handler-compiler.h" |
8 | 8 |
9 #include "src/api-arguments.h" | 9 #include "src/api-arguments.h" |
10 #include "src/field-type.h" | 10 #include "src/field-type.h" |
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
541 | 541 |
542 void NamedLoadHandlerCompiler::FrontendFooter(Handle<Name> name, Label* miss) { | 542 void NamedLoadHandlerCompiler::FrontendFooter(Handle<Name> name, Label* miss) { |
543 if (!miss->is_unused()) { | 543 if (!miss->is_unused()) { |
544 Label success; | 544 Label success; |
545 __ jmp(&success); | 545 __ jmp(&success); |
546 __ bind(miss); | 546 __ bind(miss); |
547 if (IC::ICUseVector(kind())) { | 547 if (IC::ICUseVector(kind())) { |
548 DCHECK(kind() == Code::LOAD_IC); | 548 DCHECK(kind() == Code::LOAD_IC); |
549 PopVectorAndSlot(); | 549 PopVectorAndSlot(); |
550 } | 550 } |
551 TailCallBuiltin(masm(), MissBuiltin(kind())); | 551 TailCallMissHandler(masm(), kind()); |
552 __ bind(&success); | 552 __ bind(&success); |
553 } | 553 } |
554 } | 554 } |
555 | 555 |
556 | 556 |
557 void NamedStoreHandlerCompiler::FrontendFooter(Handle<Name> name, Label* miss) { | 557 void NamedStoreHandlerCompiler::FrontendFooter(Handle<Name> name, Label* miss) { |
558 if (!miss->is_unused()) { | 558 if (!miss->is_unused()) { |
559 Label success; | 559 Label success; |
560 __ jmp(&success); | 560 __ jmp(&success); |
561 GenerateRestoreName(miss, name); | 561 GenerateRestoreName(miss, name); |
562 if (IC::ICUseVector(kind())) PopVectorAndSlot(); | 562 if (IC::ICUseVector(kind())) PopVectorAndSlot(); |
563 TailCallBuiltin(masm(), MissBuiltin(kind())); | 563 TailCallMissHandler(masm(), kind()); |
564 __ bind(&success); | 564 __ bind(&success); |
565 } | 565 } |
566 } | 566 } |
567 | 567 |
568 void NamedLoadHandlerCompiler::GenerateLoadConstant(Handle<Object> value) { | 568 void NamedLoadHandlerCompiler::GenerateLoadConstant(Handle<Object> value) { |
569 // Return the constant value. | 569 // Return the constant value. |
570 __ Move(rax, value); | 570 __ Move(rax, value); |
571 __ ret(0); | 571 __ ret(0); |
572 } | 572 } |
573 | 573 |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
716 // Return the generated code. | 716 // Return the generated code. |
717 return GetCode(kind(), name); | 717 return GetCode(kind(), name); |
718 } | 718 } |
719 | 719 |
720 | 720 |
721 #undef __ | 721 #undef __ |
722 } // namespace internal | 722 } // namespace internal |
723 } // namespace v8 | 723 } // namespace v8 |
724 | 724 |
725 #endif // V8_TARGET_ARCH_X64 | 725 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |