| 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 #include "src/compiler/instruction-selector.h" | 5 #include "src/compiler/instruction-selector.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "src/base/adapters.h" | 9 #include "src/base/adapters.h" |
| 10 #include "src/compiler/instruction-selector-impl.h" | 10 #include "src/compiler/instruction-selector-impl.h" |
| (...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 761 } | 761 } |
| 762 case BasicBlock::kDeoptimize: { | 762 case BasicBlock::kDeoptimize: { |
| 763 DeoptimizeKind kind = DeoptimizeKindOf(input->op()); | 763 DeoptimizeKind kind = DeoptimizeKindOf(input->op()); |
| 764 Node* value = input->InputAt(0); | 764 Node* value = input->InputAt(0); |
| 765 return VisitDeoptimize(kind, value); | 765 return VisitDeoptimize(kind, value); |
| 766 } | 766 } |
| 767 case BasicBlock::kThrow: | 767 case BasicBlock::kThrow: |
| 768 DCHECK_EQ(IrOpcode::kThrow, input->opcode()); | 768 DCHECK_EQ(IrOpcode::kThrow, input->opcode()); |
| 769 return VisitThrow(input->InputAt(0)); | 769 return VisitThrow(input->InputAt(0)); |
| 770 case BasicBlock::kNone: { | 770 case BasicBlock::kNone: { |
| 771 // TODO(titzer): exit block doesn't have control. | 771 // Exit block doesn't have control. |
| 772 DCHECK_NULL(input); | 772 DCHECK_NULL(input); |
| 773 break; | 773 break; |
| 774 } | 774 } |
| 775 default: | 775 default: |
| 776 UNREACHABLE(); | 776 UNREACHABLE(); |
| 777 break; | 777 break; |
| 778 } | 778 } |
| 779 } | 779 } |
| 780 | 780 |
| 781 | 781 |
| (...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1604 case DeoptimizeKind::kSoft: | 1604 case DeoptimizeKind::kSoft: |
| 1605 opcode |= MiscField::encode(Deoptimizer::SOFT); | 1605 opcode |= MiscField::encode(Deoptimizer::SOFT); |
| 1606 break; | 1606 break; |
| 1607 } | 1607 } |
| 1608 Emit(opcode, 0, nullptr, args.size(), &args.front(), 0, nullptr); | 1608 Emit(opcode, 0, nullptr, args.size(), &args.front(), 0, nullptr); |
| 1609 } | 1609 } |
| 1610 | 1610 |
| 1611 | 1611 |
| 1612 void InstructionSelector::VisitThrow(Node* value) { | 1612 void InstructionSelector::VisitThrow(Node* value) { |
| 1613 OperandGenerator g(this); | 1613 OperandGenerator g(this); |
| 1614 Emit(kArchThrowTerminator, g.NoOutput()); // TODO(titzer) | 1614 Emit(kArchThrowTerminator, g.NoOutput()); |
| 1615 } | 1615 } |
| 1616 | 1616 |
| 1617 | 1617 |
| 1618 FrameStateDescriptor* InstructionSelector::GetFrameStateDescriptor( | 1618 FrameStateDescriptor* InstructionSelector::GetFrameStateDescriptor( |
| 1619 Node* state) { | 1619 Node* state) { |
| 1620 DCHECK(state->opcode() == IrOpcode::kFrameState); | 1620 DCHECK(state->opcode() == IrOpcode::kFrameState); |
| 1621 DCHECK_EQ(kFrameStateInputCount, state->InputCount()); | 1621 DCHECK_EQ(kFrameStateInputCount, state->InputCount()); |
| 1622 FrameStateInfo state_info = OpParameter<FrameStateInfo>(state); | 1622 FrameStateInfo state_info = OpParameter<FrameStateInfo>(state); |
| 1623 | 1623 |
| 1624 int parameters = static_cast<int>( | 1624 int parameters = static_cast<int>( |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1640 return new (instruction_zone()) FrameStateDescriptor( | 1640 return new (instruction_zone()) FrameStateDescriptor( |
| 1641 instruction_zone(), state_info.type(), state_info.bailout_id(), | 1641 instruction_zone(), state_info.type(), state_info.bailout_id(), |
| 1642 state_info.state_combine(), parameters, locals, stack, | 1642 state_info.state_combine(), parameters, locals, stack, |
| 1643 state_info.shared_info(), outer_state); | 1643 state_info.shared_info(), outer_state); |
| 1644 } | 1644 } |
| 1645 | 1645 |
| 1646 | 1646 |
| 1647 } // namespace compiler | 1647 } // namespace compiler |
| 1648 } // namespace internal | 1648 } // namespace internal |
| 1649 } // namespace v8 | 1649 } // namespace v8 |
| OLD | NEW |