| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/arm/lithium-arm.h" | 5 #include "src/crankshaft/arm/lithium-arm.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 | 8 |
| 9 #include "src/crankshaft/arm/lithium-codegen-arm.h" | 9 #include "src/crankshaft/arm/lithium-codegen-arm.h" |
| 10 #include "src/crankshaft/hydrogen-osr.h" | 10 #include "src/crankshaft/hydrogen-osr.h" |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 stream->Add(") then B%d else B%d", true_block_id(), false_block_id()); | 198 stream->Add(") then B%d else B%d", true_block_id(), false_block_id()); |
| 199 } | 199 } |
| 200 | 200 |
| 201 | 201 |
| 202 void LHasInstanceTypeAndBranch::PrintDataTo(StringStream* stream) { | 202 void LHasInstanceTypeAndBranch::PrintDataTo(StringStream* stream) { |
| 203 stream->Add("if has_instance_type("); | 203 stream->Add("if has_instance_type("); |
| 204 value()->PrintTo(stream); | 204 value()->PrintTo(stream); |
| 205 stream->Add(") then B%d else B%d", true_block_id(), false_block_id()); | 205 stream->Add(") then B%d else B%d", true_block_id(), false_block_id()); |
| 206 } | 206 } |
| 207 | 207 |
| 208 | |
| 209 void LHasCachedArrayIndexAndBranch::PrintDataTo(StringStream* stream) { | |
| 210 stream->Add("if has_cached_array_index("); | |
| 211 value()->PrintTo(stream); | |
| 212 stream->Add(") then B%d else B%d", true_block_id(), false_block_id()); | |
| 213 } | |
| 214 | |
| 215 | |
| 216 void LClassOfTestAndBranch::PrintDataTo(StringStream* stream) { | 208 void LClassOfTestAndBranch::PrintDataTo(StringStream* stream) { |
| 217 stream->Add("if class_of_test("); | 209 stream->Add("if class_of_test("); |
| 218 value()->PrintTo(stream); | 210 value()->PrintTo(stream); |
| 219 stream->Add(", \"%o\") then B%d else B%d", | 211 stream->Add(", \"%o\") then B%d else B%d", |
| 220 *hydrogen()->class_name(), | 212 *hydrogen()->class_name(), |
| 221 true_block_id(), | 213 true_block_id(), |
| 222 false_block_id()); | 214 false_block_id()); |
| 223 } | 215 } |
| 224 | 216 |
| 225 | 217 |
| (...skipping 1492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1718 } | 1710 } |
| 1719 | 1711 |
| 1720 | 1712 |
| 1721 LInstruction* LChunkBuilder::DoHasInstanceTypeAndBranch( | 1713 LInstruction* LChunkBuilder::DoHasInstanceTypeAndBranch( |
| 1722 HHasInstanceTypeAndBranch* instr) { | 1714 HHasInstanceTypeAndBranch* instr) { |
| 1723 DCHECK(instr->value()->representation().IsTagged()); | 1715 DCHECK(instr->value()->representation().IsTagged()); |
| 1724 LOperand* value = UseRegisterAtStart(instr->value()); | 1716 LOperand* value = UseRegisterAtStart(instr->value()); |
| 1725 return new(zone()) LHasInstanceTypeAndBranch(value); | 1717 return new(zone()) LHasInstanceTypeAndBranch(value); |
| 1726 } | 1718 } |
| 1727 | 1719 |
| 1728 | |
| 1729 LInstruction* LChunkBuilder::DoGetCachedArrayIndex( | |
| 1730 HGetCachedArrayIndex* instr) { | |
| 1731 DCHECK(instr->value()->representation().IsTagged()); | |
| 1732 LOperand* value = UseRegisterAtStart(instr->value()); | |
| 1733 | |
| 1734 return DefineAsRegister(new(zone()) LGetCachedArrayIndex(value)); | |
| 1735 } | |
| 1736 | |
| 1737 | |
| 1738 LInstruction* LChunkBuilder::DoHasCachedArrayIndexAndBranch( | |
| 1739 HHasCachedArrayIndexAndBranch* instr) { | |
| 1740 DCHECK(instr->value()->representation().IsTagged()); | |
| 1741 return new(zone()) LHasCachedArrayIndexAndBranch( | |
| 1742 UseRegisterAtStart(instr->value())); | |
| 1743 } | |
| 1744 | |
| 1745 | |
| 1746 LInstruction* LChunkBuilder::DoClassOfTestAndBranch( | 1720 LInstruction* LChunkBuilder::DoClassOfTestAndBranch( |
| 1747 HClassOfTestAndBranch* instr) { | 1721 HClassOfTestAndBranch* instr) { |
| 1748 DCHECK(instr->value()->representation().IsTagged()); | 1722 DCHECK(instr->value()->representation().IsTagged()); |
| 1749 LOperand* value = UseRegister(instr->value()); | 1723 LOperand* value = UseRegister(instr->value()); |
| 1750 return new(zone()) LClassOfTestAndBranch(value, TempRegister()); | 1724 return new(zone()) LClassOfTestAndBranch(value, TempRegister()); |
| 1751 } | 1725 } |
| 1752 | 1726 |
| 1753 | 1727 |
| 1754 LInstruction* LChunkBuilder::DoSeqStringGetChar(HSeqStringGetChar* instr) { | 1728 LInstruction* LChunkBuilder::DoSeqStringGetChar(HSeqStringGetChar* instr) { |
| 1755 LOperand* string = UseRegisterAtStart(instr->string()); | 1729 LOperand* string = UseRegisterAtStart(instr->string()); |
| (...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2418 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { | 2392 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { |
| 2419 LOperand* object = UseRegister(instr->object()); | 2393 LOperand* object = UseRegister(instr->object()); |
| 2420 LOperand* index = UseTempRegister(instr->index()); | 2394 LOperand* index = UseTempRegister(instr->index()); |
| 2421 LLoadFieldByIndex* load = new(zone()) LLoadFieldByIndex(object, index); | 2395 LLoadFieldByIndex* load = new(zone()) LLoadFieldByIndex(object, index); |
| 2422 LInstruction* result = DefineSameAsFirst(load); | 2396 LInstruction* result = DefineSameAsFirst(load); |
| 2423 return AssignPointerMap(result); | 2397 return AssignPointerMap(result); |
| 2424 } | 2398 } |
| 2425 | 2399 |
| 2426 } // namespace internal | 2400 } // namespace internal |
| 2427 } // namespace v8 | 2401 } // namespace v8 |
| OLD | NEW |