| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 722 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 733 inputs_[0] = value; | 733 inputs_[0] = value; |
| 734 } | 734 } |
| 735 | 735 |
| 736 LOperand* value() { return inputs_[0]; } | 736 LOperand* value() { return inputs_[0]; } |
| 737 | 737 |
| 738 DECLARE_CONCRETE_INSTRUCTION(MathFloor, "math-floor") | 738 DECLARE_CONCRETE_INSTRUCTION(MathFloor, "math-floor") |
| 739 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation) | 739 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation) |
| 740 }; | 740 }; |
| 741 | 741 |
| 742 | 742 |
| 743 class LMathRound V8_FINAL : public LTemplateInstruction<1, 2, 1> { | 743 class LMathRound V8_FINAL : public LTemplateInstruction<1, 1, 1> { |
| 744 public: | 744 public: |
| 745 LMathRound(LOperand* context, LOperand* value, LOperand* temp) { | 745 LMathRound(LOperand* value, LOperand* temp) { |
| 746 inputs_[1] = context; | |
| 747 inputs_[0] = value; | 746 inputs_[0] = value; |
| 748 temps_[0] = temp; | 747 temps_[0] = temp; |
| 749 } | 748 } |
| 750 | 749 |
| 751 LOperand* context() { return inputs_[1]; } | |
| 752 LOperand* value() { return inputs_[0]; } | 750 LOperand* value() { return inputs_[0]; } |
| 753 LOperand* temp() { return temps_[0]; } | 751 LOperand* temp() { return temps_[0]; } |
| 754 | 752 |
| 755 DECLARE_CONCRETE_INSTRUCTION(MathRound, "math-round") | 753 DECLARE_CONCRETE_INSTRUCTION(MathRound, "math-round") |
| 756 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation) | 754 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation) |
| 757 }; | 755 }; |
| 758 | 756 |
| 759 | 757 |
| 760 class LMathAbs V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 758 class LMathAbs V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 761 public: | 759 public: |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 844 explicit LMathSqrt(LOperand* value) { | 842 explicit LMathSqrt(LOperand* value) { |
| 845 inputs_[0] = value; | 843 inputs_[0] = value; |
| 846 } | 844 } |
| 847 | 845 |
| 848 LOperand* value() { return inputs_[0]; } | 846 LOperand* value() { return inputs_[0]; } |
| 849 | 847 |
| 850 DECLARE_CONCRETE_INSTRUCTION(MathSqrt, "math-sqrt") | 848 DECLARE_CONCRETE_INSTRUCTION(MathSqrt, "math-sqrt") |
| 851 }; | 849 }; |
| 852 | 850 |
| 853 | 851 |
| 854 class LMathPowHalf V8_FINAL : public LTemplateInstruction<1, 2, 1> { | 852 class LMathPowHalf V8_FINAL : public LTemplateInstruction<1, 1, 1> { |
| 855 public: | 853 public: |
| 856 LMathPowHalf(LOperand* context, LOperand* value, LOperand* temp) { | 854 LMathPowHalf(LOperand* value, LOperand* temp) { |
| 857 inputs_[1] = context; | |
| 858 inputs_[0] = value; | 855 inputs_[0] = value; |
| 859 temps_[0] = temp; | 856 temps_[0] = temp; |
| 860 } | 857 } |
| 861 | 858 |
| 862 LOperand* context() { return inputs_[1]; } | |
| 863 LOperand* value() { return inputs_[0]; } | 859 LOperand* value() { return inputs_[0]; } |
| 864 LOperand* temp() { return temps_[0]; } | 860 LOperand* temp() { return temps_[0]; } |
| 865 | 861 |
| 866 DECLARE_CONCRETE_INSTRUCTION(MathPowHalf, "math-pow-half") | 862 DECLARE_CONCRETE_INSTRUCTION(MathPowHalf, "math-pow-half") |
| 867 }; | 863 }; |
| 868 | 864 |
| 869 | 865 |
| 870 class LCmpObjectEqAndBranch V8_FINAL : public LControlInstruction<2, 0> { | 866 class LCmpObjectEqAndBranch V8_FINAL : public LControlInstruction<2, 0> { |
| 871 public: | 867 public: |
| 872 LCmpObjectEqAndBranch(LOperand* left, LOperand* right) { | 868 LCmpObjectEqAndBranch(LOperand* left, LOperand* right) { |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 961 | 957 |
| 962 | 958 |
| 963 class LStringCompareAndBranch V8_FINAL : public LControlInstruction<3, 0> { | 959 class LStringCompareAndBranch V8_FINAL : public LControlInstruction<3, 0> { |
| 964 public: | 960 public: |
| 965 LStringCompareAndBranch(LOperand* context, LOperand* left, LOperand* right) { | 961 LStringCompareAndBranch(LOperand* context, LOperand* left, LOperand* right) { |
| 966 inputs_[0] = context; | 962 inputs_[0] = context; |
| 967 inputs_[1] = left; | 963 inputs_[1] = left; |
| 968 inputs_[2] = right; | 964 inputs_[2] = right; |
| 969 } | 965 } |
| 970 | 966 |
| 967 LOperand* context() { return inputs_[1]; } |
| 971 LOperand* left() { return inputs_[1]; } | 968 LOperand* left() { return inputs_[1]; } |
| 972 LOperand* right() { return inputs_[2]; } | 969 LOperand* right() { return inputs_[2]; } |
| 973 | 970 |
| 974 DECLARE_CONCRETE_INSTRUCTION(StringCompareAndBranch, | 971 DECLARE_CONCRETE_INSTRUCTION(StringCompareAndBranch, |
| 975 "string-compare-and-branch") | 972 "string-compare-and-branch") |
| 976 DECLARE_HYDROGEN_ACCESSOR(StringCompareAndBranch) | 973 DECLARE_HYDROGEN_ACCESSOR(StringCompareAndBranch) |
| 977 | 974 |
| 978 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 975 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 979 | 976 |
| 980 Token::Value op() const { return hydrogen()->token(); } | 977 Token::Value op() const { return hydrogen()->token(); } |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1065 public: | 1062 public: |
| 1066 LCmpT(LOperand* context, LOperand* left, LOperand* right) { | 1063 LCmpT(LOperand* context, LOperand* left, LOperand* right) { |
| 1067 inputs_[0] = context; | 1064 inputs_[0] = context; |
| 1068 inputs_[1] = left; | 1065 inputs_[1] = left; |
| 1069 inputs_[2] = right; | 1066 inputs_[2] = right; |
| 1070 } | 1067 } |
| 1071 | 1068 |
| 1072 DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t") | 1069 DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t") |
| 1073 DECLARE_HYDROGEN_ACCESSOR(CompareGeneric) | 1070 DECLARE_HYDROGEN_ACCESSOR(CompareGeneric) |
| 1074 | 1071 |
| 1072 LOperand* context() { return inputs_[0]; } |
| 1075 Token::Value op() const { return hydrogen()->token(); } | 1073 Token::Value op() const { return hydrogen()->token(); } |
| 1076 }; | 1074 }; |
| 1077 | 1075 |
| 1078 | 1076 |
| 1079 class LInstanceOf V8_FINAL : public LTemplateInstruction<1, 3, 0> { | 1077 class LInstanceOf V8_FINAL : public LTemplateInstruction<1, 3, 0> { |
| 1080 public: | 1078 public: |
| 1081 LInstanceOf(LOperand* context, LOperand* left, LOperand* right) { | 1079 LInstanceOf(LOperand* context, LOperand* left, LOperand* right) { |
| 1082 inputs_[0] = context; | 1080 inputs_[0] = context; |
| 1083 inputs_[1] = left; | 1081 inputs_[1] = left; |
| 1084 inputs_[2] = right; | 1082 inputs_[2] = right; |
| 1085 } | 1083 } |
| 1086 | 1084 |
| 1087 LOperand* context() { return inputs_[0]; } | 1085 LOperand* context() { return inputs_[0]; } |
| 1088 | 1086 |
| 1089 DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of") | 1087 DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of") |
| 1090 }; | 1088 }; |
| 1091 | 1089 |
| 1092 | 1090 |
| 1093 class LInstanceOfKnownGlobal V8_FINAL : public LTemplateInstruction<1, 2, 1> { | 1091 class LInstanceOfKnownGlobal V8_FINAL : public LTemplateInstruction<1, 2, 1> { |
| 1094 public: | 1092 public: |
| 1095 LInstanceOfKnownGlobal(LOperand* context, LOperand* value, LOperand* temp) { | 1093 LInstanceOfKnownGlobal(LOperand* context, LOperand* value, LOperand* temp) { |
| 1096 inputs_[0] = context; | 1094 inputs_[0] = context; |
| 1097 inputs_[1] = value; | 1095 inputs_[1] = value; |
| 1098 temps_[0] = temp; | 1096 temps_[0] = temp; |
| 1099 } | 1097 } |
| 1100 | 1098 |
| 1099 LOperand* context() { return inputs_[0]; } |
| 1101 LOperand* value() { return inputs_[1]; } | 1100 LOperand* value() { return inputs_[1]; } |
| 1102 LOperand* temp() { return temps_[0]; } | 1101 LOperand* temp() { return temps_[0]; } |
| 1103 | 1102 |
| 1104 DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal, | 1103 DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal, |
| 1105 "instance-of-known-global") | 1104 "instance-of-known-global") |
| 1106 DECLARE_HYDROGEN_ACCESSOR(InstanceOfKnownGlobal) | 1105 DECLARE_HYDROGEN_ACCESSOR(InstanceOfKnownGlobal) |
| 1107 | 1106 |
| 1108 Handle<JSFunction> function() const { return hydrogen()->function(); } | 1107 Handle<JSFunction> function() const { return hydrogen()->function(); } |
| 1109 LEnvironment* GetDeferredLazyDeoptimizationEnvironment() { | 1108 LEnvironment* GetDeferredLazyDeoptimizationEnvironment() { |
| 1110 return lazy_deopt_env_; | 1109 return lazy_deopt_env_; |
| (...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1494 | 1493 |
| 1495 Token::Value op() const { return op_; } | 1494 Token::Value op() const { return op_; } |
| 1496 | 1495 |
| 1497 private: | 1496 private: |
| 1498 Token::Value op_; | 1497 Token::Value op_; |
| 1499 }; | 1498 }; |
| 1500 | 1499 |
| 1501 | 1500 |
| 1502 class LReturn V8_FINAL : public LTemplateInstruction<0, 3, 0> { | 1501 class LReturn V8_FINAL : public LTemplateInstruction<0, 3, 0> { |
| 1503 public: | 1502 public: |
| 1504 explicit LReturn(LOperand* value, LOperand* context, | 1503 explicit LReturn(LOperand* value, |
| 1504 LOperand* context, |
| 1505 LOperand* parameter_count) { | 1505 LOperand* parameter_count) { |
| 1506 inputs_[0] = value; | 1506 inputs_[0] = value; |
| 1507 inputs_[1] = context; | 1507 inputs_[1] = context; |
| 1508 inputs_[2] = parameter_count; | 1508 inputs_[2] = parameter_count; |
| 1509 } | 1509 } |
| 1510 | 1510 |
| 1511 bool has_constant_parameter_count() { | 1511 bool has_constant_parameter_count() { |
| 1512 return parameter_count()->IsConstantOperand(); | 1512 return parameter_count()->IsConstantOperand(); |
| 1513 } | 1513 } |
| 1514 LConstantOperand* constant_parameter_count() { | 1514 LConstantOperand* constant_parameter_count() { |
| (...skipping 1386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2901 | 2901 |
| 2902 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2902 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 2903 }; | 2903 }; |
| 2904 | 2904 |
| 2905 #undef DECLARE_HYDROGEN_ACCESSOR | 2905 #undef DECLARE_HYDROGEN_ACCESSOR |
| 2906 #undef DECLARE_CONCRETE_INSTRUCTION | 2906 #undef DECLARE_CONCRETE_INSTRUCTION |
| 2907 | 2907 |
| 2908 } } // namespace v8::internal | 2908 } } // namespace v8::internal |
| 2909 | 2909 |
| 2910 #endif // V8_IA32_LITHIUM_IA32_H_ | 2910 #endif // V8_IA32_LITHIUM_IA32_H_ |
| OLD | NEW |