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 2377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2388 | 2388 |
2389 Handle<JSFunction> known_function_; | 2389 Handle<JSFunction> known_function_; |
2390 int formal_parameter_count_; | 2390 int formal_parameter_count_; |
2391 bool has_stack_check_; | 2391 bool has_stack_check_; |
2392 }; | 2392 }; |
2393 | 2393 |
2394 | 2394 |
2395 class HCallFunction final : public HBinaryCall { | 2395 class HCallFunction final : public HBinaryCall { |
2396 public: | 2396 public: |
2397 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HCallFunction, HValue*, int); | 2397 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HCallFunction, HValue*, int); |
2398 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3( | |
2399 HCallFunction, HValue*, int, CallFunctionFlags); | |
2400 | 2398 |
2401 HValue* context() const { return first(); } | 2399 HValue* context() const { return first(); } |
2402 HValue* function() const { return second(); } | 2400 HValue* function() const { return second(); } |
2403 CallFunctionFlags function_flags() const { return function_flags_; } | |
2404 | 2401 |
2405 FeedbackVectorSlot slot() const { return slot_; } | 2402 FeedbackVectorSlot slot() const { return slot_; } |
2406 Handle<TypeFeedbackVector> feedback_vector() const { | 2403 Handle<TypeFeedbackVector> feedback_vector() const { |
2407 return feedback_vector_; | 2404 return feedback_vector_; |
2408 } | 2405 } |
2409 bool HasVectorAndSlot() const { return !feedback_vector_.is_null(); } | 2406 bool HasVectorAndSlot() const { return !feedback_vector_.is_null(); } |
2410 void SetVectorAndSlot(Handle<TypeFeedbackVector> vector, | 2407 void SetVectorAndSlot(Handle<TypeFeedbackVector> vector, |
2411 FeedbackVectorSlot slot) { | 2408 FeedbackVectorSlot slot) { |
2412 feedback_vector_ = vector; | 2409 feedback_vector_ = vector; |
2413 slot_ = slot; | 2410 slot_ = slot; |
2414 } | 2411 } |
2415 | 2412 |
2416 DECLARE_CONCRETE_INSTRUCTION(CallFunction) | 2413 DECLARE_CONCRETE_INSTRUCTION(CallFunction) |
2417 | 2414 |
2418 std::ostream& PrintDataTo(std::ostream& os) const override; // NOLINT | 2415 std::ostream& PrintDataTo(std::ostream& os) const override; // NOLINT |
2419 | 2416 |
2420 int argument_delta() const override { return -argument_count(); } | 2417 int argument_delta() const override { return -argument_count(); } |
2421 | 2418 |
2422 private: | 2419 private: |
2423 HCallFunction(HValue* context, HValue* function, int argument_count, | 2420 HCallFunction(HValue* context, HValue* function, int argument_count) |
2424 CallFunctionFlags flags = NO_CALL_FUNCTION_FLAGS) | 2421 : HBinaryCall(context, function, argument_count) {} |
2425 : HBinaryCall(context, function, argument_count), | |
2426 function_flags_(flags) {} | |
2427 CallFunctionFlags function_flags_; | |
2428 Handle<TypeFeedbackVector> feedback_vector_; | 2422 Handle<TypeFeedbackVector> feedback_vector_; |
2429 FeedbackVectorSlot slot_; | 2423 FeedbackVectorSlot slot_; |
2430 }; | 2424 }; |
2431 | 2425 |
2432 | 2426 |
2433 class HCallNew final : public HBinaryCall { | 2427 class HCallNew final : public HBinaryCall { |
2434 public: | 2428 public: |
2435 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HCallNew, HValue*, int); | 2429 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HCallNew, HValue*, int); |
2436 | 2430 |
2437 HValue* context() { return first(); } | 2431 HValue* context() { return first(); } |
(...skipping 5478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7916 | 7910 |
7917 | 7911 |
7918 | 7912 |
7919 #undef DECLARE_INSTRUCTION | 7913 #undef DECLARE_INSTRUCTION |
7920 #undef DECLARE_CONCRETE_INSTRUCTION | 7914 #undef DECLARE_CONCRETE_INSTRUCTION |
7921 | 7915 |
7922 } // namespace internal | 7916 } // namespace internal |
7923 } // namespace v8 | 7917 } // namespace v8 |
7924 | 7918 |
7925 #endif // V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ | 7919 #endif // V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |