| 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 |