| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ | 5 #ifndef RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ |
| 6 #define RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ | 6 #define RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ |
| 7 | 7 |
| 8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
| 9 #include "vm/ast.h" | 9 #include "vm/ast.h" |
| 10 #include "vm/growable_array.h" | 10 #include "vm/growable_array.h" |
| (...skipping 3929 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3940 DISALLOW_COPY_AND_ASSIGN(BooleanNegateInstr); | 3940 DISALLOW_COPY_AND_ASSIGN(BooleanNegateInstr); |
| 3941 }; | 3941 }; |
| 3942 | 3942 |
| 3943 | 3943 |
| 3944 class InstanceOfInstr : public TemplateDefinition<2, Throws> { | 3944 class InstanceOfInstr : public TemplateDefinition<2, Throws> { |
| 3945 public: | 3945 public: |
| 3946 InstanceOfInstr(TokenPosition token_pos, | 3946 InstanceOfInstr(TokenPosition token_pos, |
| 3947 Value* value, | 3947 Value* value, |
| 3948 Value* instantiator_type_arguments, | 3948 Value* instantiator_type_arguments, |
| 3949 const AbstractType& type, | 3949 const AbstractType& type, |
| 3950 bool negate_result, |
| 3950 intptr_t deopt_id) | 3951 intptr_t deopt_id) |
| 3951 : TemplateDefinition(deopt_id), token_pos_(token_pos), type_(type) { | 3952 : TemplateDefinition(deopt_id), |
| 3953 token_pos_(token_pos), |
| 3954 type_(type), |
| 3955 negate_result_(negate_result) { |
| 3952 ASSERT(!type.IsNull()); | 3956 ASSERT(!type.IsNull()); |
| 3953 SetInputAt(0, value); | 3957 SetInputAt(0, value); |
| 3954 SetInputAt(1, instantiator_type_arguments); | 3958 SetInputAt(1, instantiator_type_arguments); |
| 3955 } | 3959 } |
| 3956 | 3960 |
| 3957 DECLARE_INSTRUCTION(InstanceOf) | 3961 DECLARE_INSTRUCTION(InstanceOf) |
| 3958 virtual CompileType ComputeType() const; | 3962 virtual CompileType ComputeType() const; |
| 3959 | 3963 |
| 3960 Value* value() const { return inputs_[0]; } | 3964 Value* value() const { return inputs_[0]; } |
| 3961 Value* instantiator_type_arguments() const { return inputs_[1]; } | 3965 Value* instantiator_type_arguments() const { return inputs_[1]; } |
| 3962 | 3966 |
| 3967 bool negate_result() const { return negate_result_; } |
| 3963 const AbstractType& type() const { return type_; } | 3968 const AbstractType& type() const { return type_; } |
| 3964 virtual TokenPosition token_pos() const { return token_pos_; } | 3969 virtual TokenPosition token_pos() const { return token_pos_; } |
| 3965 | 3970 |
| 3966 virtual bool CanDeoptimize() const { return true; } | 3971 virtual bool CanDeoptimize() const { return true; } |
| 3967 | 3972 |
| 3968 virtual EffectSet Effects() const { return EffectSet::None(); } | 3973 virtual EffectSet Effects() const { return EffectSet::None(); } |
| 3969 | 3974 |
| 3970 PRINT_OPERANDS_TO_SUPPORT | 3975 PRINT_OPERANDS_TO_SUPPORT |
| 3971 | 3976 |
| 3972 private: | 3977 private: |
| 3973 const TokenPosition token_pos_; | 3978 const TokenPosition token_pos_; |
| 3974 Value* value_; | 3979 Value* value_; |
| 3975 Value* type_arguments_; | 3980 Value* type_arguments_; |
| 3976 const AbstractType& type_; | 3981 const AbstractType& type_; |
| 3982 const bool negate_result_; |
| 3977 | 3983 |
| 3978 DISALLOW_COPY_AND_ASSIGN(InstanceOfInstr); | 3984 DISALLOW_COPY_AND_ASSIGN(InstanceOfInstr); |
| 3979 }; | 3985 }; |
| 3980 | 3986 |
| 3981 | 3987 |
| 3982 class AllocateObjectInstr : public TemplateDefinition<0, NoThrow> { | 3988 class AllocateObjectInstr : public TemplateDefinition<0, NoThrow> { |
| 3983 public: | 3989 public: |
| 3984 AllocateObjectInstr(TokenPosition token_pos, | 3990 AllocateObjectInstr(TokenPosition token_pos, |
| 3985 const Class& cls, | 3991 const Class& cls, |
| 3986 ZoneGrowableArray<PushArgumentInstr*>* arguments) | 3992 ZoneGrowableArray<PushArgumentInstr*>* arguments) |
| (...skipping 4041 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8028 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \ | 8034 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \ |
| 8029 UNIMPLEMENTED(); \ | 8035 UNIMPLEMENTED(); \ |
| 8030 return NULL; \ | 8036 return NULL; \ |
| 8031 } \ | 8037 } \ |
| 8032 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } | 8038 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } |
| 8033 | 8039 |
| 8034 | 8040 |
| 8035 } // namespace dart | 8041 } // namespace dart |
| 8036 | 8042 |
| 8037 #endif // RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ | 8043 #endif // RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ |
| OLD | NEW |