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 2412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2423 DECLARE_CONCRETE_INSTRUCTION(CallNew) | 2423 DECLARE_CONCRETE_INSTRUCTION(CallNew) |
2424 | 2424 |
2425 private: | 2425 private: |
2426 HCallNew(HValue* context, HValue* constructor, int argument_count) | 2426 HCallNew(HValue* context, HValue* constructor, int argument_count) |
2427 : HBinaryCall(context, constructor, argument_count) {} | 2427 : HBinaryCall(context, constructor, argument_count) {} |
2428 }; | 2428 }; |
2429 | 2429 |
2430 | 2430 |
2431 class HCallNewArray FINAL : public HBinaryCall { | 2431 class HCallNewArray FINAL : public HBinaryCall { |
2432 public: | 2432 public: |
2433 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HCallNewArray, | 2433 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4(HCallNewArray, HValue*, int, |
2434 HValue*, | 2434 ElementsKind, |
2435 int, | 2435 Handle<AllocationSite>); |
2436 ElementsKind); | |
2437 | 2436 |
2438 HValue* context() { return first(); } | 2437 HValue* context() { return first(); } |
2439 HValue* constructor() { return second(); } | 2438 HValue* constructor() { return second(); } |
2440 | 2439 |
2441 std::ostream& PrintDataTo(std::ostream& os) const OVERRIDE; // NOLINT | 2440 std::ostream& PrintDataTo(std::ostream& os) const OVERRIDE; // NOLINT |
2442 | 2441 |
2443 ElementsKind elements_kind() const { return elements_kind_; } | 2442 ElementsKind elements_kind() const { return elements_kind_; } |
| 2443 Handle<AllocationSite> site() const { return site_; } |
2444 | 2444 |
2445 DECLARE_CONCRETE_INSTRUCTION(CallNewArray) | 2445 DECLARE_CONCRETE_INSTRUCTION(CallNewArray) |
2446 | 2446 |
2447 private: | 2447 private: |
2448 HCallNewArray(HValue* context, HValue* constructor, int argument_count, | 2448 HCallNewArray(HValue* context, HValue* constructor, int argument_count, |
2449 ElementsKind elements_kind) | 2449 ElementsKind elements_kind, Handle<AllocationSite> site) |
2450 : HBinaryCall(context, constructor, argument_count), | 2450 : HBinaryCall(context, constructor, argument_count), |
2451 elements_kind_(elements_kind) {} | 2451 elements_kind_(elements_kind), |
| 2452 site_(site) {} |
2452 | 2453 |
2453 ElementsKind elements_kind_; | 2454 ElementsKind elements_kind_; |
| 2455 Handle<AllocationSite> site_; |
2454 }; | 2456 }; |
2455 | 2457 |
2456 | 2458 |
2457 class HCallRuntime FINAL : public HCall<1> { | 2459 class HCallRuntime FINAL : public HCall<1> { |
2458 public: | 2460 public: |
2459 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HCallRuntime, | 2461 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HCallRuntime, |
2460 Handle<String>, | 2462 Handle<String>, |
2461 const Runtime::Function*, | 2463 const Runtime::Function*, |
2462 int); | 2464 int); |
2463 | 2465 |
(...skipping 5364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7828 }; | 7830 }; |
7829 | 7831 |
7830 | 7832 |
7831 | 7833 |
7832 #undef DECLARE_INSTRUCTION | 7834 #undef DECLARE_INSTRUCTION |
7833 #undef DECLARE_CONCRETE_INSTRUCTION | 7835 #undef DECLARE_CONCRETE_INSTRUCTION |
7834 | 7836 |
7835 } } // namespace v8::internal | 7837 } } // namespace v8::internal |
7836 | 7838 |
7837 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 7839 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |