| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 <sstream> | 5 #include <sstream> |
| 6 | 6 |
| 7 #include "src/v8.h" | 7 #include "src/v8.h" |
| 8 | 8 |
| 9 #include "src/arm64/lithium-codegen-arm64.h" | 9 #include "src/arm64/lithium-codegen-arm64.h" |
| 10 #include "src/hydrogen-osr.h" | 10 #include "src/hydrogen-osr.h" |
| (...skipping 1570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1581 | 1581 |
| 1582 LInstruction* LChunkBuilder::DoInstanceOfKnownGlobal( | 1582 LInstruction* LChunkBuilder::DoInstanceOfKnownGlobal( |
| 1583 HInstanceOfKnownGlobal* instr) { | 1583 HInstanceOfKnownGlobal* instr) { |
| 1584 LInstanceOfKnownGlobal* result = new(zone()) LInstanceOfKnownGlobal( | 1584 LInstanceOfKnownGlobal* result = new(zone()) LInstanceOfKnownGlobal( |
| 1585 UseFixed(instr->context(), cp), | 1585 UseFixed(instr->context(), cp), |
| 1586 UseFixed(instr->left(), InstanceofStub::left())); | 1586 UseFixed(instr->left(), InstanceofStub::left())); |
| 1587 return MarkAsCall(DefineFixed(result, x0), instr); | 1587 return MarkAsCall(DefineFixed(result, x0), instr); |
| 1588 } | 1588 } |
| 1589 | 1589 |
| 1590 | 1590 |
| 1591 LInstruction* LChunkBuilder::DoTailCallThroughMegamorphicCache( | |
| 1592 HTailCallThroughMegamorphicCache* instr) { | |
| 1593 LOperand* context = UseFixed(instr->context(), cp); | |
| 1594 LOperand* receiver_register = | |
| 1595 UseFixed(instr->receiver(), LoadDescriptor::ReceiverRegister()); | |
| 1596 LOperand* name_register = | |
| 1597 UseFixed(instr->name(), LoadDescriptor::NameRegister()); | |
| 1598 | |
| 1599 // Not marked as call. It can't deoptimize, and it never returns. | |
| 1600 return new (zone()) LTailCallThroughMegamorphicCache( | |
| 1601 context, receiver_register, name_register); | |
| 1602 } | |
| 1603 | |
| 1604 | |
| 1605 LInstruction* LChunkBuilder::DoInvokeFunction(HInvokeFunction* instr) { | 1591 LInstruction* LChunkBuilder::DoInvokeFunction(HInvokeFunction* instr) { |
| 1606 LOperand* context = UseFixed(instr->context(), cp); | 1592 LOperand* context = UseFixed(instr->context(), cp); |
| 1607 // The function is required (by MacroAssembler::InvokeFunction) to be in x1. | 1593 // The function is required (by MacroAssembler::InvokeFunction) to be in x1. |
| 1608 LOperand* function = UseFixed(instr->function(), x1); | 1594 LOperand* function = UseFixed(instr->function(), x1); |
| 1609 LInvokeFunction* result = new(zone()) LInvokeFunction(context, function); | 1595 LInvokeFunction* result = new(zone()) LInvokeFunction(context, function); |
| 1610 return MarkAsCall(DefineFixed(result, x0), instr, CANNOT_DEOPTIMIZE_EAGERLY); | 1596 return MarkAsCall(DefineFixed(result, x0), instr, CANNOT_DEOPTIMIZE_EAGERLY); |
| 1611 } | 1597 } |
| 1612 | 1598 |
| 1613 | 1599 |
| 1614 LInstruction* LChunkBuilder::DoIsConstructCallAndBranch( | 1600 LInstruction* LChunkBuilder::DoIsConstructCallAndBranch( |
| (...skipping 1157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2772 HAllocateBlockContext* instr) { | 2758 HAllocateBlockContext* instr) { |
| 2773 LOperand* context = UseFixed(instr->context(), cp); | 2759 LOperand* context = UseFixed(instr->context(), cp); |
| 2774 LOperand* function = UseRegisterAtStart(instr->function()); | 2760 LOperand* function = UseRegisterAtStart(instr->function()); |
| 2775 LAllocateBlockContext* result = | 2761 LAllocateBlockContext* result = |
| 2776 new(zone()) LAllocateBlockContext(context, function); | 2762 new(zone()) LAllocateBlockContext(context, function); |
| 2777 return MarkAsCall(DefineFixed(result, cp), instr); | 2763 return MarkAsCall(DefineFixed(result, cp), instr); |
| 2778 } | 2764 } |
| 2779 | 2765 |
| 2780 | 2766 |
| 2781 } } // namespace v8::internal | 2767 } } // namespace v8::internal |
| OLD | NEW |