OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
719 | 719 |
720 private: | 720 private: |
721 bool is_strict_; | 721 bool is_strict_; |
722 }; | 722 }; |
723 | 723 |
724 | 724 |
725 class LIsNullAndBranch: public LIsNull { | 725 class LIsNullAndBranch: public LIsNull { |
726 public: | 726 public: |
727 LIsNullAndBranch(LOperand* value, | 727 LIsNullAndBranch(LOperand* value, |
728 bool is_strict, | 728 bool is_strict, |
729 LOperand* temp, | |
730 int true_block_id, | 729 int true_block_id, |
731 int false_block_id) | 730 int false_block_id) |
732 : LIsNull(value, is_strict), | 731 : LIsNull(value, is_strict), |
733 temp_(temp), | |
734 true_block_id_(true_block_id), | 732 true_block_id_(true_block_id), |
735 false_block_id_(false_block_id) { } | 733 false_block_id_(false_block_id) { } |
736 | 734 |
737 DECLARE_CONCRETE_INSTRUCTION(IsNullAndBranch, "is-null-and-branch") | 735 DECLARE_CONCRETE_INSTRUCTION(IsNullAndBranch, "is-null-and-branch") |
738 virtual void PrintDataTo(StringStream* stream) const; | 736 virtual void PrintDataTo(StringStream* stream) const; |
739 virtual bool IsControl() const { return true; } | 737 virtual bool IsControl() const { return true; } |
740 | 738 |
741 int true_block_id() const { return true_block_id_; } | 739 int true_block_id() const { return true_block_id_; } |
742 int false_block_id() const { return false_block_id_; } | 740 int false_block_id() const { return false_block_id_; } |
743 | 741 |
744 LOperand* temp() const { return temp_; } | |
745 | |
746 private: | 742 private: |
747 LOperand* temp_; | |
748 int true_block_id_; | 743 int true_block_id_; |
749 int false_block_id_; | 744 int false_block_id_; |
750 }; | 745 }; |
751 | 746 |
752 | 747 |
753 class LIsObject: public LUnaryOperation { | 748 class LIsObject: public LUnaryOperation { |
754 public: | 749 public: |
755 LIsObject(LOperand* value, LOperand* temp) | 750 LIsObject(LOperand* value, LOperand* temp) |
756 : LUnaryOperation(value), temp_(temp) {} | 751 : LUnaryOperation(value), temp_(temp) {} |
757 | 752 |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
832 DECLARE_HYDROGEN_ACCESSOR(HasInstanceType) | 827 DECLARE_HYDROGEN_ACCESSOR(HasInstanceType) |
833 | 828 |
834 InstanceType TestType(); // The type to test against when generating code. | 829 InstanceType TestType(); // The type to test against when generating code. |
835 Condition BranchCondition(); // The branch condition for 'true'. | 830 Condition BranchCondition(); // The branch condition for 'true'. |
836 }; | 831 }; |
837 | 832 |
838 | 833 |
839 class LHasInstanceTypeAndBranch: public LHasInstanceType { | 834 class LHasInstanceTypeAndBranch: public LHasInstanceType { |
840 public: | 835 public: |
841 LHasInstanceTypeAndBranch(LOperand* value, | 836 LHasInstanceTypeAndBranch(LOperand* value, |
842 LOperand* temporary, | |
843 int true_block_id, | 837 int true_block_id, |
844 int false_block_id) | 838 int false_block_id) |
845 : LHasInstanceType(value), | 839 : LHasInstanceType(value), |
846 temp_(temporary), | |
847 true_block_id_(true_block_id), | 840 true_block_id_(true_block_id), |
848 false_block_id_(false_block_id) { } | 841 false_block_id_(false_block_id) { } |
849 | 842 |
850 DECLARE_CONCRETE_INSTRUCTION(HasInstanceTypeAndBranch, | 843 DECLARE_CONCRETE_INSTRUCTION(HasInstanceTypeAndBranch, |
851 "has-instance-type-and-branch") | 844 "has-instance-type-and-branch") |
852 virtual void PrintDataTo(StringStream* stream) const; | 845 virtual void PrintDataTo(StringStream* stream) const; |
853 virtual bool IsControl() const { return true; } | 846 virtual bool IsControl() const { return true; } |
854 | 847 |
855 int true_block_id() const { return true_block_id_; } | 848 int true_block_id() const { return true_block_id_; } |
856 int false_block_id() const { return false_block_id_; } | 849 int false_block_id() const { return false_block_id_; } |
857 | 850 |
858 LOperand* temp() { return temp_; } | |
859 | |
860 private: | 851 private: |
861 LOperand* temp_; | |
862 int true_block_id_; | 852 int true_block_id_; |
863 int false_block_id_; | 853 int false_block_id_; |
864 }; | 854 }; |
865 | 855 |
866 | 856 |
867 class LHasCachedArrayIndex: public LUnaryOperation { | 857 class LHasCachedArrayIndex: public LUnaryOperation { |
868 public: | 858 public: |
869 explicit LHasCachedArrayIndex(LOperand* value) : LUnaryOperation(value) {} | 859 explicit LHasCachedArrayIndex(LOperand* value) : LUnaryOperation(value) {} |
870 | 860 |
871 DECLARE_CONCRETE_INSTRUCTION(HasCachedArrayIndex, "has-cached-array-index") | 861 DECLARE_CONCRETE_INSTRUCTION(HasCachedArrayIndex, "has-cached-array-index") |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1258 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") | 1248 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") |
1259 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) | 1249 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) |
1260 | 1250 |
1261 LOperand* object() const { return input(); } | 1251 LOperand* object() const { return input(); } |
1262 Handle<Object> name() const { return hydrogen()->name(); } | 1252 Handle<Object> name() const { return hydrogen()->name(); } |
1263 }; | 1253 }; |
1264 | 1254 |
1265 | 1255 |
1266 class LLoadFunctionPrototype: public LUnaryOperation { | 1256 class LLoadFunctionPrototype: public LUnaryOperation { |
1267 public: | 1257 public: |
1268 LLoadFunctionPrototype(LOperand* function, LOperand* temporary) | 1258 LLoadFunctionPrototype(LOperand* function) : LUnaryOperation(function) { } |
1269 : LUnaryOperation(function), temporary_(temporary) { } | |
1270 | 1259 |
1271 DECLARE_CONCRETE_INSTRUCTION(LoadFunctionPrototype, "load-function-prototype") | 1260 DECLARE_CONCRETE_INSTRUCTION(LoadFunctionPrototype, "load-function-prototype") |
1272 DECLARE_HYDROGEN_ACCESSOR(LoadFunctionPrototype) | 1261 DECLARE_HYDROGEN_ACCESSOR(LoadFunctionPrototype) |
1273 | 1262 |
1274 LOperand* function() const { return input(); } | 1263 LOperand* function() const { return input(); } |
1275 LOperand* temporary() const { return temporary_; } | |
1276 | |
1277 private: | |
1278 LOperand* temporary_; | |
1279 }; | 1264 }; |
1280 | 1265 |
1281 | 1266 |
1282 class LLoadElements: public LUnaryOperation { | 1267 class LLoadElements: public LUnaryOperation { |
1283 public: | 1268 public: |
1284 explicit LLoadElements(LOperand* obj) : LUnaryOperation(obj) { } | 1269 explicit LLoadElements(LOperand* obj) : LUnaryOperation(obj) { } |
1285 | 1270 |
1286 DECLARE_CONCRETE_INSTRUCTION(LoadElements, "load-elements") | 1271 DECLARE_CONCRETE_INSTRUCTION(LoadElements, "load-elements") |
1287 }; | 1272 }; |
1288 | 1273 |
(...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2129 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2114 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2130 }; | 2115 }; |
2131 | 2116 |
2132 #undef DECLARE_HYDROGEN_ACCESSOR | 2117 #undef DECLARE_HYDROGEN_ACCESSOR |
2133 #undef DECLARE_INSTRUCTION | 2118 #undef DECLARE_INSTRUCTION |
2134 #undef DECLARE_CONCRETE_INSTRUCTION | 2119 #undef DECLARE_CONCRETE_INSTRUCTION |
2135 | 2120 |
2136 } } // namespace v8::internal | 2121 } } // namespace v8::internal |
2137 | 2122 |
2138 #endif // V8_ARM_LITHIUM_ARM_H_ | 2123 #endif // V8_ARM_LITHIUM_ARM_H_ |
OLD | NEW |