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 "src/crankshaft/arm64/lithium-arm64.h" | 5 #include "src/crankshaft/arm64/lithium-arm64.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "src/crankshaft/arm64/lithium-codegen-arm64.h" | 9 #include "src/crankshaft/arm64/lithium-codegen-arm64.h" |
10 #include "src/crankshaft/hydrogen-osr.h" | 10 #include "src/crankshaft/hydrogen-osr.h" |
(...skipping 1449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1460 | 1460 |
1461 LInstruction* LChunkBuilder::DoInnerAllocatedObject( | 1461 LInstruction* LChunkBuilder::DoInnerAllocatedObject( |
1462 HInnerAllocatedObject* instr) { | 1462 HInnerAllocatedObject* instr) { |
1463 LOperand* base_object = UseRegisterAtStart(instr->base_object()); | 1463 LOperand* base_object = UseRegisterAtStart(instr->base_object()); |
1464 LOperand* offset = UseRegisterOrConstantAtStart(instr->offset()); | 1464 LOperand* offset = UseRegisterOrConstantAtStart(instr->offset()); |
1465 return DefineAsRegister( | 1465 return DefineAsRegister( |
1466 new(zone()) LInnerAllocatedObject(base_object, offset)); | 1466 new(zone()) LInnerAllocatedObject(base_object, offset)); |
1467 } | 1467 } |
1468 | 1468 |
1469 | 1469 |
1470 LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) { | |
1471 LOperand* left = | |
1472 UseFixed(instr->left(), InstanceOfDescriptor::LeftRegister()); | |
1473 LOperand* right = | |
1474 UseFixed(instr->right(), InstanceOfDescriptor::RightRegister()); | |
1475 LOperand* context = UseFixed(instr->context(), cp); | |
1476 LInstanceOf* result = new (zone()) LInstanceOf(context, left, right); | |
1477 return MarkAsCall(DefineFixed(result, x0), instr); | |
1478 } | |
1479 | |
1480 | |
1481 LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch( | 1470 LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch( |
1482 HHasInPrototypeChainAndBranch* instr) { | 1471 HHasInPrototypeChainAndBranch* instr) { |
1483 LOperand* object = UseRegister(instr->object()); | 1472 LOperand* object = UseRegister(instr->object()); |
1484 LOperand* prototype = UseRegister(instr->prototype()); | 1473 LOperand* prototype = UseRegister(instr->prototype()); |
1485 LOperand* scratch1 = TempRegister(); | 1474 LOperand* scratch1 = TempRegister(); |
1486 LOperand* scratch2 = TempRegister(); | 1475 LOperand* scratch2 = TempRegister(); |
1487 LHasInPrototypeChainAndBranch* result = new (zone()) | 1476 LHasInPrototypeChainAndBranch* result = new (zone()) |
1488 LHasInPrototypeChainAndBranch(object, prototype, scratch1, scratch2); | 1477 LHasInPrototypeChainAndBranch(object, prototype, scratch1, scratch2); |
1489 return AssignEnvironment(result); | 1478 return AssignEnvironment(result); |
1490 } | 1479 } |
(...skipping 1130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2621 | 2610 |
2622 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { | 2611 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { |
2623 LOperand* receiver = UseRegister(instr->receiver()); | 2612 LOperand* receiver = UseRegister(instr->receiver()); |
2624 LOperand* function = UseRegister(instr->function()); | 2613 LOperand* function = UseRegister(instr->function()); |
2625 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); | 2614 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); |
2626 return AssignEnvironment(DefineAsRegister(result)); | 2615 return AssignEnvironment(DefineAsRegister(result)); |
2627 } | 2616 } |
2628 | 2617 |
2629 } // namespace internal | 2618 } // namespace internal |
2630 } // namespace v8 | 2619 } // namespace v8 |
OLD | NEW |