Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(252)

Side by Side Diff: src/arm64/lithium-arm64.h

Issue 324093002: ARM/ARM64: Optimise HLoadNamedField and HStoreNamedField. Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Upload the correct patch (minor diff in hydrogen.h) Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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-allocator.h" 9 #include "src/lithium-allocator.h"
10 #include "src/lithium.h" 10 #include "src/lithium.h"
(...skipping 1654 matching lines...) Expand 10 before | Expand all | Expand 10 after
1665 1665
1666 DECLARE_CONCRETE_INSTRUCTION(LoadContextSlot, "load-context-slot") 1666 DECLARE_CONCRETE_INSTRUCTION(LoadContextSlot, "load-context-slot")
1667 DECLARE_HYDROGEN_ACCESSOR(LoadContextSlot) 1667 DECLARE_HYDROGEN_ACCESSOR(LoadContextSlot)
1668 1668
1669 int slot_index() const { return hydrogen()->slot_index(); } 1669 int slot_index() const { return hydrogen()->slot_index(); }
1670 1670
1671 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 1671 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
1672 }; 1672 };
1673 1673
1674 1674
1675 class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1675 class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 2, 0> {
1676 public: 1676 public:
1677 explicit LLoadNamedField(LOperand* object) { 1677 LLoadNamedField(LOperand* object, LOperand* object_properties = NULL) {
1678 inputs_[0] = object; 1678 inputs_[0] = object;
1679 inputs_[1] = object_properties;
1679 } 1680 }
1680 1681
1681 LOperand* object() { return inputs_[0]; } 1682 LOperand* object() { return inputs_[0]; }
1683 LOperand* object_properties() { return inputs_[1]; }
1682 1684
1683 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") 1685 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field")
1684 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) 1686 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField)
1685 }; 1687 };
1686 1688
1687 1689
1688 class LFunctionLiteral V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1690 class LFunctionLiteral V8_FINAL : public LTemplateInstruction<1, 1, 0> {
1689 public: 1691 public:
1690 explicit LFunctionLiteral(LOperand* context) { 1692 explicit LFunctionLiteral(LOperand* context) {
1691 inputs_[0] = context; 1693 inputs_[0] = context;
(...skipping 852 matching lines...) Expand 10 before | Expand all | Expand 10 after
2544 2546
2545 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") 2547 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic")
2546 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) 2548 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric)
2547 2549
2548 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 2550 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
2549 2551
2550 StrictMode strict_mode() { return hydrogen()->strict_mode(); } 2552 StrictMode strict_mode() { return hydrogen()->strict_mode(); }
2551 }; 2553 };
2552 2554
2553 2555
2554 class LStoreNamedField V8_FINAL : public LTemplateInstruction<0, 2, 2> { 2556 class LStoreNamedField V8_FINAL : public LTemplateInstruction<0, 3, 2> {
2555 public: 2557 public:
2556 LStoreNamedField(LOperand* object, LOperand* value, 2558 LStoreNamedField(LOperand* object, LOperand* value,
2557 LOperand* temp0, LOperand* temp1) { 2559 LOperand* temp0, LOperand* temp1,
2560 LOperand* object_properties = NULL) {
2558 inputs_[0] = object; 2561 inputs_[0] = object;
2559 inputs_[1] = value; 2562 inputs_[1] = value;
2563 inputs_[2] = object_properties;
2560 temps_[0] = temp0; 2564 temps_[0] = temp0;
2561 temps_[1] = temp1; 2565 temps_[1] = temp1;
2562 } 2566 }
2563 2567
2564 LOperand* object() { return inputs_[0]; } 2568 LOperand* object() { return inputs_[0]; }
2565 LOperand* value() { return inputs_[1]; } 2569 LOperand* value() { return inputs_[1]; }
2570 LOperand* object_properties() { return inputs_[2]; }
2566 LOperand* temp0() { return temps_[0]; } 2571 LOperand* temp0() { return temps_[0]; }
2567 LOperand* temp1() { return temps_[1]; } 2572 LOperand* temp1() { return temps_[1]; }
2568 2573
2569 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") 2574 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field")
2570 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) 2575 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField)
2571 2576
2572 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 2577 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
2573 2578
2574 Representation representation() const { 2579 Representation representation() const {
2575 return hydrogen()->field_representation(); 2580 return hydrogen()->field_representation();
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after
3239 3244
3240 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 3245 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
3241 }; 3246 };
3242 3247
3243 #undef DECLARE_HYDROGEN_ACCESSOR 3248 #undef DECLARE_HYDROGEN_ACCESSOR
3244 #undef DECLARE_CONCRETE_INSTRUCTION 3249 #undef DECLARE_CONCRETE_INSTRUCTION
3245 3250
3246 } } // namespace v8::internal 3251 } } // namespace v8::internal
3247 3252
3248 #endif // V8_ARM64_LITHIUM_ARM64_H_ 3253 #endif // V8_ARM64_LITHIUM_ARM64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698