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 |