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_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ | 5 #ifndef V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ |
6 #define V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ | 6 #define V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ |
7 | 7 |
8 #include <cstring> | 8 #include <cstring> |
9 #include <iosfwd> | 9 #include <iosfwd> |
10 | 10 |
(...skipping 2844 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2855 } | 2855 } |
2856 | 2856 |
2857 Unique<HeapObject> object_; | 2857 Unique<HeapObject> object_; |
2858 bool object_in_new_space_; | 2858 bool object_in_new_space_; |
2859 }; | 2859 }; |
2860 | 2860 |
2861 | 2861 |
2862 class HCheckInstanceType final : public HUnaryOperation { | 2862 class HCheckInstanceType final : public HUnaryOperation { |
2863 public: | 2863 public: |
2864 enum Check { | 2864 enum Check { |
2865 IS_SPEC_OBJECT, | 2865 IS_JS_RECEIVER, |
2866 IS_JS_ARRAY, | 2866 IS_JS_ARRAY, |
2867 IS_JS_DATE, | 2867 IS_JS_DATE, |
2868 IS_STRING, | 2868 IS_STRING, |
2869 IS_INTERNALIZED_STRING, | 2869 IS_INTERNALIZED_STRING, |
2870 LAST_INTERVAL_CHECK = IS_JS_DATE | 2870 LAST_INTERVAL_CHECK = IS_JS_DATE |
2871 }; | 2871 }; |
2872 | 2872 |
2873 DECLARE_INSTRUCTION_FACTORY_P2(HCheckInstanceType, HValue*, Check); | 2873 DECLARE_INSTRUCTION_FACTORY_P2(HCheckInstanceType, HValue*, Check); |
2874 | 2874 |
2875 std::ostream& PrintDataTo(std::ostream& os) const override; // NOLINT | 2875 std::ostream& PrintDataTo(std::ostream& os) const override; // NOLINT |
2876 | 2876 |
2877 Representation RequiredInputRepresentation(int index) override { | 2877 Representation RequiredInputRepresentation(int index) override { |
2878 return Representation::Tagged(); | 2878 return Representation::Tagged(); |
2879 } | 2879 } |
2880 | 2880 |
2881 HType CalculateInferredType() override { | 2881 HType CalculateInferredType() override { |
2882 switch (check_) { | 2882 switch (check_) { |
2883 case IS_SPEC_OBJECT: return HType::JSObject(); | 2883 case IS_JS_RECEIVER: return HType::JSObject(); |
2884 case IS_JS_ARRAY: return HType::JSArray(); | 2884 case IS_JS_ARRAY: return HType::JSArray(); |
2885 case IS_JS_DATE: | 2885 case IS_JS_DATE: return HType::JSObject(); |
2886 return HType::JSObject(); | |
2887 case IS_STRING: return HType::String(); | 2886 case IS_STRING: return HType::String(); |
2888 case IS_INTERNALIZED_STRING: return HType::String(); | 2887 case IS_INTERNALIZED_STRING: return HType::String(); |
2889 } | 2888 } |
2890 UNREACHABLE(); | 2889 UNREACHABLE(); |
2891 return HType::Tagged(); | 2890 return HType::Tagged(); |
2892 } | 2891 } |
2893 | 2892 |
2894 HValue* Canonicalize() override; | 2893 HValue* Canonicalize() override; |
2895 | 2894 |
2896 bool is_interval_check() const { return check_ <= LAST_INTERVAL_CHECK; } | 2895 bool is_interval_check() const { return check_ <= LAST_INTERVAL_CHECK; } |
(...skipping 4921 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7818 | 7817 |
7819 | 7818 |
7820 | 7819 |
7821 #undef DECLARE_INSTRUCTION | 7820 #undef DECLARE_INSTRUCTION |
7822 #undef DECLARE_CONCRETE_INSTRUCTION | 7821 #undef DECLARE_CONCRETE_INSTRUCTION |
7823 | 7822 |
7824 } // namespace internal | 7823 } // namespace internal |
7825 } // namespace v8 | 7824 } // namespace v8 |
7826 | 7825 |
7827 #endif // V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ | 7826 #endif // V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |