| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_ | 5 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_ |
| 6 #define V8_HYDROGEN_INSTRUCTIONS_H_ | 6 #define V8_HYDROGEN_INSTRUCTIONS_H_ |
| 7 | 7 |
| 8 #include <cstring> | 8 #include <cstring> |
| 9 #include <iosfwd> | 9 #include <iosfwd> |
| 10 | 10 |
| (...skipping 2857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2868 Unique<HeapObject> object_; | 2868 Unique<HeapObject> object_; |
| 2869 bool object_in_new_space_; | 2869 bool object_in_new_space_; |
| 2870 }; | 2870 }; |
| 2871 | 2871 |
| 2872 | 2872 |
| 2873 class HCheckInstanceType final : public HUnaryOperation { | 2873 class HCheckInstanceType final : public HUnaryOperation { |
| 2874 public: | 2874 public: |
| 2875 enum Check { | 2875 enum Check { |
| 2876 IS_SPEC_OBJECT, | 2876 IS_SPEC_OBJECT, |
| 2877 IS_JS_ARRAY, | 2877 IS_JS_ARRAY, |
| 2878 IS_JS_DATE, |
| 2878 IS_STRING, | 2879 IS_STRING, |
| 2879 IS_INTERNALIZED_STRING, | 2880 IS_INTERNALIZED_STRING, |
| 2880 LAST_INTERVAL_CHECK = IS_JS_ARRAY | 2881 LAST_INTERVAL_CHECK = IS_JS_DATE |
| 2881 }; | 2882 }; |
| 2882 | 2883 |
| 2883 DECLARE_INSTRUCTION_FACTORY_P2(HCheckInstanceType, HValue*, Check); | 2884 DECLARE_INSTRUCTION_FACTORY_P2(HCheckInstanceType, HValue*, Check); |
| 2884 | 2885 |
| 2885 std::ostream& PrintDataTo(std::ostream& os) const override; // NOLINT | 2886 std::ostream& PrintDataTo(std::ostream& os) const override; // NOLINT |
| 2886 | 2887 |
| 2887 Representation RequiredInputRepresentation(int index) override { | 2888 Representation RequiredInputRepresentation(int index) override { |
| 2888 return Representation::Tagged(); | 2889 return Representation::Tagged(); |
| 2889 } | 2890 } |
| 2890 | 2891 |
| 2891 HType CalculateInferredType() override { | 2892 HType CalculateInferredType() override { |
| 2892 switch (check_) { | 2893 switch (check_) { |
| 2893 case IS_SPEC_OBJECT: return HType::JSObject(); | 2894 case IS_SPEC_OBJECT: return HType::JSObject(); |
| 2894 case IS_JS_ARRAY: return HType::JSArray(); | 2895 case IS_JS_ARRAY: return HType::JSArray(); |
| 2896 case IS_JS_DATE: |
| 2897 return HType::JSObject(); |
| 2895 case IS_STRING: return HType::String(); | 2898 case IS_STRING: return HType::String(); |
| 2896 case IS_INTERNALIZED_STRING: return HType::String(); | 2899 case IS_INTERNALIZED_STRING: return HType::String(); |
| 2897 } | 2900 } |
| 2898 UNREACHABLE(); | 2901 UNREACHABLE(); |
| 2899 return HType::Tagged(); | 2902 return HType::Tagged(); |
| 2900 } | 2903 } |
| 2901 | 2904 |
| 2902 HValue* Canonicalize() override; | 2905 HValue* Canonicalize() override; |
| 2903 | 2906 |
| 2904 bool is_interval_check() const { return check_ <= LAST_INTERVAL_CHECK; } | 2907 bool is_interval_check() const { return check_ <= LAST_INTERVAL_CHECK; } |
| (...skipping 5000 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7905 }; | 7908 }; |
| 7906 | 7909 |
| 7907 | 7910 |
| 7908 | 7911 |
| 7909 #undef DECLARE_INSTRUCTION | 7912 #undef DECLARE_INSTRUCTION |
| 7910 #undef DECLARE_CONCRETE_INSTRUCTION | 7913 #undef DECLARE_CONCRETE_INSTRUCTION |
| 7911 | 7914 |
| 7912 } } // namespace v8::internal | 7915 } } // namespace v8::internal |
| 7913 | 7916 |
| 7914 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 7917 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
| OLD | NEW |