| 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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 | 95 |
| 96 | 96 |
| 97 void LCompareNumericAndBranch::PrintDataTo(StringStream* stream) { | 97 void LCompareNumericAndBranch::PrintDataTo(StringStream* stream) { |
| 98 stream->Add("if "); | 98 stream->Add("if "); |
| 99 left()->PrintTo(stream); | 99 left()->PrintTo(stream); |
| 100 stream->Add(" %s ", Token::String(op())); | 100 stream->Add(" %s ", Token::String(op())); |
| 101 right()->PrintTo(stream); | 101 right()->PrintTo(stream); |
| 102 stream->Add(" then B%d else B%d", true_block_id(), false_block_id()); | 102 stream->Add(" then B%d else B%d", true_block_id(), false_block_id()); |
| 103 } | 103 } |
| 104 | 104 |
| 105 | |
| 106 void LHasCachedArrayIndexAndBranch::PrintDataTo(StringStream* stream) { | |
| 107 stream->Add("if has_cached_array_index("); | |
| 108 value()->PrintTo(stream); | |
| 109 stream->Add(") then B%d else B%d", true_block_id(), false_block_id()); | |
| 110 } | |
| 111 | |
| 112 | |
| 113 bool LGoto::HasInterestingComment(LCodeGen* gen) const { | 105 bool LGoto::HasInterestingComment(LCodeGen* gen) const { |
| 114 return !gen->IsNextEmittedBlock(block_id()); | 106 return !gen->IsNextEmittedBlock(block_id()); |
| 115 } | 107 } |
| 116 | 108 |
| 117 | 109 |
| 118 void LGoto::PrintDataTo(StringStream* stream) { | 110 void LGoto::PrintDataTo(StringStream* stream) { |
| 119 stream->Add("B%d", block_id()); | 111 stream->Add("B%d", block_id()); |
| 120 } | 112 } |
| 121 | 113 |
| 122 | 114 |
| (...skipping 1298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1421 | 1413 |
| 1422 | 1414 |
| 1423 LInstruction* LChunkBuilder::DoForceRepresentation( | 1415 LInstruction* LChunkBuilder::DoForceRepresentation( |
| 1424 HForceRepresentation* instr) { | 1416 HForceRepresentation* instr) { |
| 1425 // All HForceRepresentation instructions should be eliminated in the | 1417 // All HForceRepresentation instructions should be eliminated in the |
| 1426 // representation change phase of Hydrogen. | 1418 // representation change phase of Hydrogen. |
| 1427 UNREACHABLE(); | 1419 UNREACHABLE(); |
| 1428 return NULL; | 1420 return NULL; |
| 1429 } | 1421 } |
| 1430 | 1422 |
| 1431 | |
| 1432 LInstruction* LChunkBuilder::DoGetCachedArrayIndex( | |
| 1433 HGetCachedArrayIndex* instr) { | |
| 1434 DCHECK(instr->value()->representation().IsTagged()); | |
| 1435 LOperand* value = UseRegisterAtStart(instr->value()); | |
| 1436 return DefineAsRegister(new(zone()) LGetCachedArrayIndex(value)); | |
| 1437 } | |
| 1438 | |
| 1439 | |
| 1440 LInstruction* LChunkBuilder::DoGoto(HGoto* instr) { | 1423 LInstruction* LChunkBuilder::DoGoto(HGoto* instr) { |
| 1441 return new(zone()) LGoto(instr->FirstSuccessor()); | 1424 return new(zone()) LGoto(instr->FirstSuccessor()); |
| 1442 } | 1425 } |
| 1443 | 1426 |
| 1444 | |
| 1445 LInstruction* LChunkBuilder::DoHasCachedArrayIndexAndBranch( | |
| 1446 HHasCachedArrayIndexAndBranch* instr) { | |
| 1447 DCHECK(instr->value()->representation().IsTagged()); | |
| 1448 return new(zone()) LHasCachedArrayIndexAndBranch( | |
| 1449 UseRegisterAtStart(instr->value()), TempRegister()); | |
| 1450 } | |
| 1451 | |
| 1452 | |
| 1453 LInstruction* LChunkBuilder::DoHasInstanceTypeAndBranch( | 1427 LInstruction* LChunkBuilder::DoHasInstanceTypeAndBranch( |
| 1454 HHasInstanceTypeAndBranch* instr) { | 1428 HHasInstanceTypeAndBranch* instr) { |
| 1455 DCHECK(instr->value()->representation().IsTagged()); | 1429 DCHECK(instr->value()->representation().IsTagged()); |
| 1456 LOperand* value = UseRegisterAtStart(instr->value()); | 1430 LOperand* value = UseRegisterAtStart(instr->value()); |
| 1457 return new(zone()) LHasInstanceTypeAndBranch(value, TempRegister()); | 1431 return new(zone()) LHasInstanceTypeAndBranch(value, TempRegister()); |
| 1458 } | 1432 } |
| 1459 | 1433 |
| 1460 | 1434 |
| 1461 LInstruction* LChunkBuilder::DoInnerAllocatedObject( | 1435 LInstruction* LChunkBuilder::DoInnerAllocatedObject( |
| 1462 HInnerAllocatedObject* instr) { | 1436 HInnerAllocatedObject* instr) { |
| (...skipping 1052 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2515 | 2489 |
| 2516 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { | 2490 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { |
| 2517 LOperand* receiver = UseRegister(instr->receiver()); | 2491 LOperand* receiver = UseRegister(instr->receiver()); |
| 2518 LOperand* function = UseRegister(instr->function()); | 2492 LOperand* function = UseRegister(instr->function()); |
| 2519 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); | 2493 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); |
| 2520 return AssignEnvironment(DefineAsRegister(result)); | 2494 return AssignEnvironment(DefineAsRegister(result)); |
| 2521 } | 2495 } |
| 2522 | 2496 |
| 2523 } // namespace internal | 2497 } // namespace internal |
| 2524 } // namespace v8 | 2498 } // namespace v8 |
| OLD | NEW |