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/common-operator.h" | 5 #include "src/compiler/common-operator.h" |
6 | 6 |
7 #include "src/assembler.h" | 7 #include "src/assembler.h" |
8 #include "src/base/lazy-instance.h" | 8 #include "src/base/lazy-instance.h" |
9 #include "src/compiler/linkage.h" | 9 #include "src/compiler/linkage.h" |
10 #include "src/compiler/opcodes.h" | 10 #include "src/compiler/opcodes.h" |
(...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
681 const Operator* CommonOperatorBuilder::TypedStateValues( | 681 const Operator* CommonOperatorBuilder::TypedStateValues( |
682 const ZoneVector<MachineType>* types) { | 682 const ZoneVector<MachineType>* types) { |
683 return new (zone()) Operator1<const ZoneVector<MachineType>*>( // -- | 683 return new (zone()) Operator1<const ZoneVector<MachineType>*>( // -- |
684 IrOpcode::kTypedStateValues, Operator::kPure, // opcode | 684 IrOpcode::kTypedStateValues, Operator::kPure, // opcode |
685 "TypedStateValues", // name | 685 "TypedStateValues", // name |
686 static_cast<int>(types->size()), 0, 0, 1, 0, 0, types); // counts | 686 static_cast<int>(types->size()), 0, 0, 1, 0, 0, types); // counts |
687 } | 687 } |
688 | 688 |
689 | 689 |
690 const Operator* CommonOperatorBuilder::FrameState( | 690 const Operator* CommonOperatorBuilder::FrameState( |
691 FrameStateType type, BailoutId bailout_id, | 691 BailoutId bailout_id, OutputFrameStateCombine state_combine, |
692 OutputFrameStateCombine state_combine, | 692 const FrameStateFunctionInfo* function_info) { |
693 MaybeHandle<SharedFunctionInfo> shared_info) { | 693 FrameStateInfo state_info(bailout_id, state_combine, function_info); |
694 FrameStateCallInfo state_info(type, bailout_id, state_combine, shared_info); | 694 return new (zone()) Operator1<FrameStateInfo>( // -- |
695 return new (zone()) Operator1<FrameStateCallInfo>( // -- | 695 IrOpcode::kFrameState, Operator::kPure, // opcode |
696 IrOpcode::kFrameState, Operator::kPure, // opcode | 696 "FrameState", // name |
697 "FrameState", // name | 697 5, 0, 0, 1, 0, 0, // counts |
698 5, 0, 0, 1, 0, 0, // counts | 698 state_info); // parameter |
699 state_info); // parameter | |
700 } | 699 } |
701 | 700 |
702 | 701 |
703 const Operator* CommonOperatorBuilder::Call(const CallDescriptor* descriptor) { | 702 const Operator* CommonOperatorBuilder::Call(const CallDescriptor* descriptor) { |
704 class CallOperator final : public Operator1<const CallDescriptor*> { | 703 class CallOperator final : public Operator1<const CallDescriptor*> { |
705 public: | 704 public: |
706 explicit CallOperator(const CallDescriptor* descriptor) | 705 explicit CallOperator(const CallDescriptor* descriptor) |
707 : Operator1<const CallDescriptor*>( | 706 : Operator1<const CallDescriptor*>( |
708 IrOpcode::kCall, descriptor->properties(), "Call", | 707 IrOpcode::kCall, descriptor->properties(), "Call", |
709 descriptor->InputCount() + descriptor->FrameStateCount(), | 708 descriptor->InputCount() + descriptor->FrameStateCount(), |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
769 return Merge(size); | 768 return Merge(size); |
770 } else if (op->opcode() == IrOpcode::kLoop) { | 769 } else if (op->opcode() == IrOpcode::kLoop) { |
771 return Loop(size); | 770 return Loop(size); |
772 } else { | 771 } else { |
773 UNREACHABLE(); | 772 UNREACHABLE(); |
774 return nullptr; | 773 return nullptr; |
775 } | 774 } |
776 } | 775 } |
777 | 776 |
778 | 777 |
| 778 const FrameStateFunctionInfo* |
| 779 CommonOperatorBuilder::CreateFrameStateFunctionInfo( |
| 780 FrameStateType type, int parameter_count, int local_count, |
| 781 Handle<SharedFunctionInfo> shared_info) { |
| 782 return new (zone()->New(sizeof(FrameStateFunctionInfo))) |
| 783 FrameStateFunctionInfo(type, parameter_count, local_count, shared_info); |
| 784 } |
| 785 |
779 } // namespace compiler | 786 } // namespace compiler |
780 } // namespace internal | 787 } // namespace internal |
781 } // namespace v8 | 788 } // namespace v8 |
OLD | NEW |