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

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

Issue 398053002: Introduce FLAG_vector_ics. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE. Created 6 years, 5 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
« no previous file with comments | « src/ia32/lithium-codegen-ia32.cc ('k') | src/ia32/lithium-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_IA32_LITHIUM_IA32_H_ 5 #ifndef V8_IA32_LITHIUM_IA32_H_
6 #define V8_IA32_LITHIUM_IA32_H_ 6 #define V8_IA32_LITHIUM_IA32_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 1560 matching lines...) Expand 10 before | Expand all | Expand 10 after
1571 inputs_[0] = object; 1571 inputs_[0] = object;
1572 } 1572 }
1573 1573
1574 LOperand* object() { return inputs_[0]; } 1574 LOperand* object() { return inputs_[0]; }
1575 1575
1576 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") 1576 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field")
1577 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) 1577 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField)
1578 }; 1578 };
1579 1579
1580 1580
1581 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { 1581 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 1> {
1582 public: 1582 public:
1583 LLoadNamedGeneric(LOperand* context, LOperand* object) { 1583 LLoadNamedGeneric(LOperand* context, LOperand* object, LOperand* vector) {
1584 inputs_[0] = context; 1584 inputs_[0] = context;
1585 inputs_[1] = object; 1585 inputs_[1] = object;
1586 temps_[0] = vector;
1586 } 1587 }
1587 1588
1588 LOperand* context() { return inputs_[0]; } 1589 LOperand* context() { return inputs_[0]; }
1589 LOperand* object() { return inputs_[1]; } 1590 LOperand* object() { return inputs_[1]; }
1591 LOperand* temp_vector() { return temps_[0]; }
1590 1592
1591 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") 1593 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic")
1592 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) 1594 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric)
1593 1595
1594 Handle<Object> name() const { return hydrogen()->name(); } 1596 Handle<Object> name() const { return hydrogen()->name(); }
1595 }; 1597 };
1596 1598
1597 1599
1598 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 1> { 1600 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 1> {
1599 public: 1601 public:
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1660 return key_representation.IsSmi() && 1662 return key_representation.IsSmi() &&
1661 (elements_kind == EXTERNAL_INT8_ELEMENTS || 1663 (elements_kind == EXTERNAL_INT8_ELEMENTS ||
1662 elements_kind == EXTERNAL_UINT8_ELEMENTS || 1664 elements_kind == EXTERNAL_UINT8_ELEMENTS ||
1663 elements_kind == EXTERNAL_UINT8_CLAMPED_ELEMENTS || 1665 elements_kind == EXTERNAL_UINT8_CLAMPED_ELEMENTS ||
1664 elements_kind == UINT8_ELEMENTS || 1666 elements_kind == UINT8_ELEMENTS ||
1665 elements_kind == INT8_ELEMENTS || 1667 elements_kind == INT8_ELEMENTS ||
1666 elements_kind == UINT8_CLAMPED_ELEMENTS); 1668 elements_kind == UINT8_CLAMPED_ELEMENTS);
1667 } 1669 }
1668 1670
1669 1671
1670 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 0> { 1672 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 1> {
1671 public: 1673 public:
1672 LLoadKeyedGeneric(LOperand* context, LOperand* obj, LOperand* key) { 1674 LLoadKeyedGeneric(LOperand* context, LOperand* obj, LOperand* key,
1675 LOperand* vector) {
1673 inputs_[0] = context; 1676 inputs_[0] = context;
1674 inputs_[1] = obj; 1677 inputs_[1] = obj;
1675 inputs_[2] = key; 1678 inputs_[2] = key;
1679 temps_[0] = vector;
1676 } 1680 }
1677 1681
1678 LOperand* context() { return inputs_[0]; } 1682 LOperand* context() { return inputs_[0]; }
1679 LOperand* object() { return inputs_[1]; } 1683 LOperand* object() { return inputs_[1]; }
1680 LOperand* key() { return inputs_[2]; } 1684 LOperand* key() { return inputs_[2]; }
1685 LOperand* temp_vector() { return temps_[0]; }
1681 1686
1682 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") 1687 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic")
1688 DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric)
1683 }; 1689 };
1684 1690
1685 1691
1686 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { 1692 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> {
1687 public: 1693 public:
1688 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell") 1694 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell")
1689 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell) 1695 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell)
1690 }; 1696 };
1691 1697
1692 1698
1693 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { 1699 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 1> {
1694 public: 1700 public:
1695 LLoadGlobalGeneric(LOperand* context, LOperand* global_object) { 1701 LLoadGlobalGeneric(LOperand* context, LOperand* global_object,
1702 LOperand* vector) {
1696 inputs_[0] = context; 1703 inputs_[0] = context;
1697 inputs_[1] = global_object; 1704 inputs_[1] = global_object;
1705 temps_[0] = vector;
1698 } 1706 }
1699 1707
1700 LOperand* context() { return inputs_[0]; } 1708 LOperand* context() { return inputs_[0]; }
1701 LOperand* global_object() { return inputs_[1]; } 1709 LOperand* global_object() { return inputs_[1]; }
1710 LOperand* temp_vector() { return temps_[0]; }
1702 1711
1703 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") 1712 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic")
1704 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) 1713 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric)
1705 1714
1706 Handle<Object> name() const { return hydrogen()->name(); } 1715 Handle<Object> name() const { return hydrogen()->name(); }
1707 bool for_typeof() const { return hydrogen()->for_typeof(); } 1716 bool for_typeof() const { return hydrogen()->for_typeof(); }
1708 }; 1717 };
1709 1718
1710 1719
1711 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 0> { 1720 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 0> {
(...skipping 1151 matching lines...) Expand 10 before | Expand all | Expand 10 after
2863 2872
2864 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2873 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2865 }; 2874 };
2866 2875
2867 #undef DECLARE_HYDROGEN_ACCESSOR 2876 #undef DECLARE_HYDROGEN_ACCESSOR
2868 #undef DECLARE_CONCRETE_INSTRUCTION 2877 #undef DECLARE_CONCRETE_INSTRUCTION
2869 2878
2870 } } // namespace v8::internal 2879 } } // namespace v8::internal
2871 2880
2872 #endif // V8_IA32_LITHIUM_IA32_H_ 2881 #endif // V8_IA32_LITHIUM_IA32_H_
OLDNEW
« no previous file with comments | « src/ia32/lithium-codegen-ia32.cc ('k') | src/ia32/lithium-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698