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

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

Issue 7060010: Merge bleeding edge into the GC branch up to 7948. The asserts (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/gc/
Patch Set: Created 9 years, 7 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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 V(CallNamed) \ 60 V(CallNamed) \
61 V(CallNew) \ 61 V(CallNew) \
62 V(CallRuntime) \ 62 V(CallRuntime) \
63 V(CallStub) \ 63 V(CallStub) \
64 V(CheckFunction) \ 64 V(CheckFunction) \
65 V(CheckInstanceType) \ 65 V(CheckInstanceType) \
66 V(CheckMap) \ 66 V(CheckMap) \
67 V(CheckNonSmi) \ 67 V(CheckNonSmi) \
68 V(CheckPrototypeMaps) \ 68 V(CheckPrototypeMaps) \
69 V(CheckSmi) \ 69 V(CheckSmi) \
70 V(ClampDToUint8) \
71 V(ClampIToUint8) \
72 V(ClampTToUint8) \
70 V(ClassOfTest) \ 73 V(ClassOfTest) \
71 V(ClassOfTestAndBranch) \ 74 V(ClassOfTestAndBranch) \
72 V(CmpID) \ 75 V(CmpID) \
73 V(CmpIDAndBranch) \ 76 V(CmpIDAndBranch) \
74 V(CmpJSObjectEq) \ 77 V(CmpJSObjectEq) \
75 V(CmpJSObjectEqAndBranch) \ 78 V(CmpJSObjectEqAndBranch) \
79 V(CmpSymbolEq) \
80 V(CmpSymbolEqAndBranch) \
76 V(CmpMapAndBranch) \ 81 V(CmpMapAndBranch) \
77 V(CmpT) \ 82 V(CmpT) \
78 V(CmpTAndBranch) \ 83 V(CmpTAndBranch) \
79 V(ConstantD) \ 84 V(ConstantD) \
80 V(ConstantI) \ 85 V(ConstantI) \
81 V(ConstantT) \ 86 V(ConstantT) \
82 V(Context) \ 87 V(Context) \
83 V(DeleteProperty) \ 88 V(DeleteProperty) \
84 V(Deoptimize) \ 89 V(Deoptimize) \
85 V(DivI) \ 90 V(DivI) \
86 V(DoubleToI) \ 91 V(DoubleToI) \
87 V(ExternalArrayLength) \ 92 V(ExternalArrayLength) \
88 V(FixedArrayLength) \ 93 V(FixedArrayLength) \
89 V(FunctionLiteral) \ 94 V(FunctionLiteral) \
90 V(GetCachedArrayIndex) \ 95 V(GetCachedArrayIndex) \
91 V(GlobalObject) \ 96 V(GlobalObject) \
92 V(GlobalReceiver) \ 97 V(GlobalReceiver) \
93 V(Goto) \ 98 V(Goto) \
94 V(HasCachedArrayIndex) \ 99 V(HasCachedArrayIndex) \
95 V(HasCachedArrayIndexAndBranch) \ 100 V(HasCachedArrayIndexAndBranch) \
96 V(HasInstanceType) \ 101 V(HasInstanceType) \
97 V(HasInstanceTypeAndBranch) \ 102 V(HasInstanceTypeAndBranch) \
98 V(In) \ 103 V(In) \
99 V(InstanceOf) \ 104 V(InstanceOf) \
100 V(InstanceOfAndBranch) \ 105 V(InstanceOfAndBranch) \
101 V(InstanceOfKnownGlobal) \ 106 V(InstanceOfKnownGlobal) \
102 V(InstructionGap) \ 107 V(InstructionGap) \
103 V(Integer32ToDouble) \ 108 V(Integer32ToDouble) \
104 V(InvokeFunction) \ 109 V(InvokeFunction) \
110 V(IsConstructCall) \
111 V(IsConstructCallAndBranch) \
105 V(IsNull) \ 112 V(IsNull) \
106 V(IsNullAndBranch) \ 113 V(IsNullAndBranch) \
107 V(IsObject) \ 114 V(IsObject) \
108 V(IsObjectAndBranch) \ 115 V(IsObjectAndBranch) \
109 V(IsSmi) \ 116 V(IsSmi) \
110 V(IsSmiAndBranch) \ 117 V(IsSmiAndBranch) \
111 V(IsConstructCall) \ 118 V(IsUndetectable) \
112 V(IsConstructCallAndBranch) \ 119 V(IsUndetectableAndBranch) \
113 V(JSArrayLength) \ 120 V(JSArrayLength) \
114 V(Label) \ 121 V(Label) \
115 V(LazyBailout) \ 122 V(LazyBailout) \
116 V(LoadContextSlot) \ 123 V(LoadContextSlot) \
117 V(LoadElements) \ 124 V(LoadElements) \
118 V(LoadExternalArrayPointer) \ 125 V(LoadExternalArrayPointer) \
119 V(LoadFunctionPrototype) \ 126 V(LoadFunctionPrototype) \
120 V(LoadGlobalCell) \ 127 V(LoadGlobalCell) \
121 V(LoadGlobalGeneric) \ 128 V(LoadGlobalGeneric) \
122 V(LoadKeyedFastElement) \ 129 V(LoadKeyedFastElement) \
(...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 LCmpJSObjectEqAndBranch(LOperand* left, LOperand* right) { 666 LCmpJSObjectEqAndBranch(LOperand* left, LOperand* right) {
660 inputs_[0] = left; 667 inputs_[0] = left;
661 inputs_[1] = right; 668 inputs_[1] = right;
662 } 669 }
663 670
664 DECLARE_CONCRETE_INSTRUCTION(CmpJSObjectEqAndBranch, 671 DECLARE_CONCRETE_INSTRUCTION(CmpJSObjectEqAndBranch,
665 "cmp-jsobject-eq-and-branch") 672 "cmp-jsobject-eq-and-branch")
666 }; 673 };
667 674
668 675
676 class LCmpSymbolEq: public LTemplateInstruction<1, 2, 0> {
677 public:
678 LCmpSymbolEq(LOperand* left, LOperand* right) {
679 inputs_[0] = left;
680 inputs_[1] = right;
681 }
682
683 DECLARE_CONCRETE_INSTRUCTION(CmpSymbolEq, "cmp-symbol-eq")
684 };
685
686
687 class LCmpSymbolEqAndBranch: public LControlInstruction<2, 0> {
688 public:
689 LCmpSymbolEqAndBranch(LOperand* left, LOperand* right) {
690 inputs_[0] = left;
691 inputs_[1] = right;
692 }
693
694 DECLARE_CONCRETE_INSTRUCTION(CmpSymbolEqAndBranch, "cmp-symbol-eq-and-branch")
695 };
696
697
669 class LIsNull: public LTemplateInstruction<1, 1, 0> { 698 class LIsNull: public LTemplateInstruction<1, 1, 0> {
670 public: 699 public:
671 explicit LIsNull(LOperand* value) { 700 explicit LIsNull(LOperand* value) {
672 inputs_[0] = value; 701 inputs_[0] = value;
673 } 702 }
674 703
675 DECLARE_CONCRETE_INSTRUCTION(IsNull, "is-null") 704 DECLARE_CONCRETE_INSTRUCTION(IsNull, "is-null")
676 DECLARE_HYDROGEN_ACCESSOR(IsNull) 705 DECLARE_HYDROGEN_ACCESSOR(IsNull)
677 706
678 bool is_strict() const { return hydrogen()->is_strict(); } 707 bool is_strict() const { return hydrogen()->is_strict(); }
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 explicit LIsSmiAndBranch(LOperand* value) { 765 explicit LIsSmiAndBranch(LOperand* value) {
737 inputs_[0] = value; 766 inputs_[0] = value;
738 } 767 }
739 768
740 DECLARE_CONCRETE_INSTRUCTION(IsSmiAndBranch, "is-smi-and-branch") 769 DECLARE_CONCRETE_INSTRUCTION(IsSmiAndBranch, "is-smi-and-branch")
741 770
742 virtual void PrintDataTo(StringStream* stream); 771 virtual void PrintDataTo(StringStream* stream);
743 }; 772 };
744 773
745 774
775 class LIsUndetectable: public LTemplateInstruction<1, 1, 0> {
776 public:
777 explicit LIsUndetectable(LOperand* value) {
778 inputs_[0] = value;
779 }
780
781 DECLARE_CONCRETE_INSTRUCTION(IsUndetectable, "is-undetectable")
782 DECLARE_HYDROGEN_ACCESSOR(IsUndetectable)
783 };
784
785
786 class LIsUndetectableAndBranch: public LControlInstruction<1, 1> {
787 public:
788 explicit LIsUndetectableAndBranch(LOperand* value, LOperand* temp) {
789 inputs_[0] = value;
790 temps_[0] = temp;
791 }
792
793 DECLARE_CONCRETE_INSTRUCTION(IsUndetectableAndBranch,
794 "is-undetectable-and-branch")
795
796 virtual void PrintDataTo(StringStream* stream);
797 };
798
799
746 class LHasInstanceType: public LTemplateInstruction<1, 1, 0> { 800 class LHasInstanceType: public LTemplateInstruction<1, 1, 0> {
747 public: 801 public:
748 explicit LHasInstanceType(LOperand* value) { 802 explicit LHasInstanceType(LOperand* value) {
749 inputs_[0] = value; 803 inputs_[0] = value;
750 } 804 }
751 805
752 DECLARE_CONCRETE_INSTRUCTION(HasInstanceType, "has-instance-type") 806 DECLARE_CONCRETE_INSTRUCTION(HasInstanceType, "has-instance-type")
753 DECLARE_HYDROGEN_ACCESSOR(HasInstanceType) 807 DECLARE_HYDROGEN_ACCESSOR(HasInstanceType)
754 }; 808 };
755 809
(...skipping 1002 matching lines...) Expand 10 before | Expand all | Expand 10 after
1758 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedFastElement) 1812 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedFastElement)
1759 1813
1760 virtual void PrintDataTo(StringStream* stream); 1814 virtual void PrintDataTo(StringStream* stream);
1761 1815
1762 LOperand* object() { return inputs_[0]; } 1816 LOperand* object() { return inputs_[0]; }
1763 LOperand* key() { return inputs_[1]; } 1817 LOperand* key() { return inputs_[1]; }
1764 LOperand* value() { return inputs_[2]; } 1818 LOperand* value() { return inputs_[2]; }
1765 }; 1819 };
1766 1820
1767 1821
1768 class LStoreKeyedSpecializedArrayElement: public LTemplateInstruction<0, 3, 1> { 1822 class LStoreKeyedSpecializedArrayElement: public LTemplateInstruction<0, 3, 0> {
1769 public: 1823 public:
1770 LStoreKeyedSpecializedArrayElement(LOperand* external_pointer, 1824 LStoreKeyedSpecializedArrayElement(LOperand* external_pointer,
1771 LOperand* key, 1825 LOperand* key,
1772 LOperand* val, 1826 LOperand* val) {
1773 LOperand* temp) {
1774 inputs_[0] = external_pointer; 1827 inputs_[0] = external_pointer;
1775 inputs_[1] = key; 1828 inputs_[1] = key;
1776 inputs_[2] = val; 1829 inputs_[2] = val;
1777 temps_[0] = temp;
1778 } 1830 }
1779 1831
1780 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedSpecializedArrayElement, 1832 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedSpecializedArrayElement,
1781 "store-keyed-specialized-array-element") 1833 "store-keyed-specialized-array-element")
1782 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedSpecializedArrayElement) 1834 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedSpecializedArrayElement)
1783 1835
1784 LOperand* external_pointer() { return inputs_[0]; } 1836 LOperand* external_pointer() { return inputs_[0]; }
1785 LOperand* key() { return inputs_[1]; } 1837 LOperand* key() { return inputs_[1]; }
1786 LOperand* value() { return inputs_[2]; } 1838 LOperand* value() { return inputs_[2]; }
1787 ExternalArrayType array_type() const { 1839 ExternalArrayType array_type() const {
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1922 class LCheckSmi: public LTemplateInstruction<0, 1, 0> { 1974 class LCheckSmi: public LTemplateInstruction<0, 1, 0> {
1923 public: 1975 public:
1924 explicit LCheckSmi(LOperand* value) { 1976 explicit LCheckSmi(LOperand* value) {
1925 inputs_[0] = value; 1977 inputs_[0] = value;
1926 } 1978 }
1927 1979
1928 DECLARE_CONCRETE_INSTRUCTION(CheckSmi, "check-smi") 1980 DECLARE_CONCRETE_INSTRUCTION(CheckSmi, "check-smi")
1929 }; 1981 };
1930 1982
1931 1983
1984 class LClampDToUint8: public LTemplateInstruction<1, 1, 0> {
1985 public:
1986 explicit LClampDToUint8(LOperand* value) {
1987 inputs_[0] = value;
1988 }
1989
1990 LOperand* unclamped() { return inputs_[0]; }
1991
1992 DECLARE_CONCRETE_INSTRUCTION(ClampDToUint8, "clamp-d-to-uint8")
1993 };
1994
1995
1996 class LClampIToUint8: public LTemplateInstruction<1, 1, 0> {
1997 public:
1998 explicit LClampIToUint8(LOperand* value) {
1999 inputs_[0] = value;
2000 }
2001
2002 LOperand* unclamped() { return inputs_[0]; }
2003
2004 DECLARE_CONCRETE_INSTRUCTION(ClampIToUint8, "clamp-i-to-uint8")
2005 };
2006
2007
2008 class LClampTToUint8: public LTemplateInstruction<1, 1, 1> {
2009 public:
2010 LClampTToUint8(LOperand* value, LOperand* temp) {
2011 inputs_[0] = value;
2012 temps_[0] = temp;
2013 }
2014
2015 LOperand* unclamped() { return inputs_[0]; }
2016
2017 DECLARE_CONCRETE_INSTRUCTION(ClampTToUint8, "clamp-t-to-uint8")
2018 };
2019
2020
1932 class LCheckNonSmi: public LTemplateInstruction<0, 1, 0> { 2021 class LCheckNonSmi: public LTemplateInstruction<0, 1, 0> {
1933 public: 2022 public:
1934 explicit LCheckNonSmi(LOperand* value) { 2023 explicit LCheckNonSmi(LOperand* value) {
1935 inputs_[0] = value; 2024 inputs_[0] = value;
1936 } 2025 }
1937 2026
1938 DECLARE_CONCRETE_INSTRUCTION(CheckNonSmi, "check-non-smi") 2027 DECLARE_CONCRETE_INSTRUCTION(CheckNonSmi, "check-non-smi")
1939 }; 2028 };
1940 2029
1941 2030
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
2304 2393
2305 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2394 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2306 }; 2395 };
2307 2396
2308 #undef DECLARE_HYDROGEN_ACCESSOR 2397 #undef DECLARE_HYDROGEN_ACCESSOR
2309 #undef DECLARE_CONCRETE_INSTRUCTION 2398 #undef DECLARE_CONCRETE_INSTRUCTION
2310 2399
2311 } } // namespace v8::internal 2400 } } // namespace v8::internal
2312 2401
2313 #endif // V8_IA32_LITHIUM_IA32_H_ 2402 #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