| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_ARM64_LITHIUM_ARM64_H_ | 5 #ifndef V8_ARM64_LITHIUM_ARM64_H_ |
| 6 #define V8_ARM64_LITHIUM_ARM64_H_ | 6 #define V8_ARM64_LITHIUM_ARM64_H_ |
| 7 | 7 |
| 8 #include "src/hydrogen.h" | 8 #include "src/hydrogen.h" |
| 9 #include "src/lithium.h" | 9 #include "src/lithium.h" |
| 10 #include "src/lithium-allocator.h" | 10 #include "src/lithium-allocator.h" |
| (...skipping 2527 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2538 temps_[0] = temp; | 2538 temps_[0] = temp; |
| 2539 } | 2539 } |
| 2540 | 2540 |
| 2541 LOperand* temp() { return temps_[0]; } | 2541 LOperand* temp() { return temps_[0]; } |
| 2542 | 2542 |
| 2543 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedFixedDouble, | 2543 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedFixedDouble, |
| 2544 "store-keyed-fixed-double") | 2544 "store-keyed-fixed-double") |
| 2545 }; | 2545 }; |
| 2546 | 2546 |
| 2547 | 2547 |
| 2548 class LStoreKeyedGeneric final : public LTemplateInstruction<0, 4, 0> { | 2548 class LStoreKeyedGeneric final : public LTemplateInstruction<0, 4, 2> { |
| 2549 public: | 2549 public: |
| 2550 LStoreKeyedGeneric(LOperand* context, | 2550 LStoreKeyedGeneric(LOperand* context, LOperand* object, LOperand* key, |
| 2551 LOperand* obj, | 2551 LOperand* value, LOperand* slot, LOperand* vector) { |
| 2552 LOperand* key, | |
| 2553 LOperand* value) { | |
| 2554 inputs_[0] = context; | 2552 inputs_[0] = context; |
| 2555 inputs_[1] = obj; | 2553 inputs_[1] = object; |
| 2556 inputs_[2] = key; | 2554 inputs_[2] = key; |
| 2557 inputs_[3] = value; | 2555 inputs_[3] = value; |
| 2556 temps_[0] = slot; |
| 2557 temps_[1] = vector; |
| 2558 } | 2558 } |
| 2559 | 2559 |
| 2560 LOperand* context() { return inputs_[0]; } | 2560 LOperand* context() { return inputs_[0]; } |
| 2561 LOperand* object() { return inputs_[1]; } | 2561 LOperand* object() { return inputs_[1]; } |
| 2562 LOperand* key() { return inputs_[2]; } | 2562 LOperand* key() { return inputs_[2]; } |
| 2563 LOperand* value() { return inputs_[3]; } | 2563 LOperand* value() { return inputs_[3]; } |
| 2564 LOperand* temp_slot() { return temps_[0]; } |
| 2565 LOperand* temp_vector() { return temps_[1]; } |
| 2564 | 2566 |
| 2565 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") | 2567 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") |
| 2566 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) | 2568 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) |
| 2567 | 2569 |
| 2568 void PrintDataTo(StringStream* stream) override; | 2570 void PrintDataTo(StringStream* stream) override; |
| 2569 | 2571 |
| 2570 LanguageMode language_mode() { return hydrogen()->language_mode(); } | 2572 LanguageMode language_mode() { return hydrogen()->language_mode(); } |
| 2571 }; | 2573 }; |
| 2572 | 2574 |
| 2573 | 2575 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 2590 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) | 2592 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) |
| 2591 | 2593 |
| 2592 void PrintDataTo(StringStream* stream) override; | 2594 void PrintDataTo(StringStream* stream) override; |
| 2593 | 2595 |
| 2594 Representation representation() const { | 2596 Representation representation() const { |
| 2595 return hydrogen()->field_representation(); | 2597 return hydrogen()->field_representation(); |
| 2596 } | 2598 } |
| 2597 }; | 2599 }; |
| 2598 | 2600 |
| 2599 | 2601 |
| 2600 class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 0> { | 2602 class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 2> { |
| 2601 public: | 2603 public: |
| 2602 LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value) { | 2604 LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value, |
| 2605 LOperand* slot, LOperand* vector) { |
| 2603 inputs_[0] = context; | 2606 inputs_[0] = context; |
| 2604 inputs_[1] = object; | 2607 inputs_[1] = object; |
| 2605 inputs_[2] = value; | 2608 inputs_[2] = value; |
| 2609 temps_[0] = slot; |
| 2610 temps_[1] = vector; |
| 2606 } | 2611 } |
| 2607 | 2612 |
| 2608 LOperand* context() { return inputs_[0]; } | 2613 LOperand* context() { return inputs_[0]; } |
| 2609 LOperand* object() { return inputs_[1]; } | 2614 LOperand* object() { return inputs_[1]; } |
| 2610 LOperand* value() { return inputs_[2]; } | 2615 LOperand* value() { return inputs_[2]; } |
| 2616 LOperand* temp_slot() { return temps_[0]; } |
| 2617 LOperand* temp_vector() { return temps_[1]; } |
| 2611 | 2618 |
| 2612 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") | 2619 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") |
| 2613 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) | 2620 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) |
| 2614 | 2621 |
| 2615 void PrintDataTo(StringStream* stream) override; | 2622 void PrintDataTo(StringStream* stream) override; |
| 2616 | 2623 |
| 2617 Handle<Object> name() const { return hydrogen()->name(); } | 2624 Handle<Object> name() const { return hydrogen()->name(); } |
| 2618 LanguageMode language_mode() { return hydrogen()->language_mode(); } | 2625 LanguageMode language_mode() { return hydrogen()->language_mode(); } |
| 2619 }; | 2626 }; |
| 2620 | 2627 |
| (...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3233 | 3240 |
| 3234 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 3241 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 3235 }; | 3242 }; |
| 3236 | 3243 |
| 3237 #undef DECLARE_HYDROGEN_ACCESSOR | 3244 #undef DECLARE_HYDROGEN_ACCESSOR |
| 3238 #undef DECLARE_CONCRETE_INSTRUCTION | 3245 #undef DECLARE_CONCRETE_INSTRUCTION |
| 3239 | 3246 |
| 3240 } } // namespace v8::internal | 3247 } } // namespace v8::internal |
| 3241 | 3248 |
| 3242 #endif // V8_ARM64_LITHIUM_ARM64_H_ | 3249 #endif // V8_ARM64_LITHIUM_ARM64_H_ |
| OLD | NEW |