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 VM_INTERMEDIATE_LANGUAGE_H_ | 5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_ |
6 #define VM_INTERMEDIATE_LANGUAGE_H_ | 6 #define 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 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
554 M(Float64x2OneArg) \ | 554 M(Float64x2OneArg) \ |
555 M(ExtractNthOutput) \ | 555 M(ExtractNthOutput) \ |
556 M(BinaryUint32Op) \ | 556 M(BinaryUint32Op) \ |
557 M(ShiftUint32Op) \ | 557 M(ShiftUint32Op) \ |
558 M(UnaryUint32Op) \ | 558 M(UnaryUint32Op) \ |
559 M(BoxUint32) \ | 559 M(BoxUint32) \ |
560 M(UnboxUint32) \ | 560 M(UnboxUint32) \ |
561 M(BoxInt32) \ | 561 M(BoxInt32) \ |
562 M(UnboxInt32) \ | 562 M(UnboxInt32) \ |
563 M(UnboxedIntConverter) \ | 563 M(UnboxedIntConverter) \ |
| 564 M(GrowRegExpStack) \ |
564 M(Deoptimize) | 565 M(Deoptimize) |
565 | 566 |
566 #define FOR_EACH_ABSTRACT_INSTRUCTION(M) \ | 567 #define FOR_EACH_ABSTRACT_INSTRUCTION(M) \ |
567 M(BlockEntry) \ | 568 M(BlockEntry) \ |
568 M(BoxInteger) \ | 569 M(BoxInteger) \ |
569 M(UnboxInteger) \ | 570 M(UnboxInteger) \ |
570 M(Comparison) \ | 571 M(Comparison) \ |
571 M(UnaryIntegerOp) \ | 572 M(UnaryIntegerOp) \ |
572 M(BinaryIntegerOp) \ | 573 M(BinaryIntegerOp) \ |
573 | 574 |
(...skipping 7212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7786 | 7787 |
7787 private: | 7788 private: |
7788 const Representation from_representation_; | 7789 const Representation from_representation_; |
7789 const Representation to_representation_; | 7790 const Representation to_representation_; |
7790 bool is_truncating_; | 7791 bool is_truncating_; |
7791 | 7792 |
7792 DISALLOW_COPY_AND_ASSIGN(UnboxedIntConverterInstr); | 7793 DISALLOW_COPY_AND_ASSIGN(UnboxedIntConverterInstr); |
7793 }; | 7794 }; |
7794 | 7795 |
7795 | 7796 |
| 7797 class GrowRegExpStackInstr : public TemplateDefinition<1, Throws> { |
| 7798 public: |
| 7799 explicit GrowRegExpStackInstr(Value* typed_data_cell) { |
| 7800 SetInputAt(0, typed_data_cell); |
| 7801 } |
| 7802 |
| 7803 Value* typed_data_cell() const { return inputs_[0]; } |
| 7804 |
| 7805 virtual bool CanDeoptimize() const { return MayThrow(); } |
| 7806 virtual EffectSet Effects() const { return EffectSet::None(); } |
| 7807 |
| 7808 DECLARE_INSTRUCTION(GrowRegExpStack); |
| 7809 |
| 7810 private: |
| 7811 DISALLOW_COPY_AND_ASSIGN(GrowRegExpStackInstr); |
| 7812 }; |
| 7813 |
| 7814 |
7796 #undef DECLARE_INSTRUCTION | 7815 #undef DECLARE_INSTRUCTION |
7797 | 7816 |
7798 class Environment : public ZoneAllocated { | 7817 class Environment : public ZoneAllocated { |
7799 public: | 7818 public: |
7800 // Iterate the non-NULL values in the innermost level of an environment. | 7819 // Iterate the non-NULL values in the innermost level of an environment. |
7801 class ShallowIterator : public ValueObject { | 7820 class ShallowIterator : public ValueObject { |
7802 public: | 7821 public: |
7803 explicit ShallowIterator(Environment* environment) | 7822 explicit ShallowIterator(Environment* environment) |
7804 : environment_(environment), index_(0) { } | 7823 : environment_(environment), index_(0) { } |
7805 | 7824 |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8037 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \ | 8056 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \ |
8038 UNIMPLEMENTED(); \ | 8057 UNIMPLEMENTED(); \ |
8039 return NULL; \ | 8058 return NULL; \ |
8040 } \ | 8059 } \ |
8041 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } | 8060 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } |
8042 | 8061 |
8043 | 8062 |
8044 } // namespace dart | 8063 } // namespace dart |
8045 | 8064 |
8046 #endif // VM_INTERMEDIATE_LANGUAGE_H_ | 8065 #endif // VM_INTERMEDIATE_LANGUAGE_H_ |
OLD | NEW |