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

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

Issue 15303004: Implement HChange support for Smis and use it in Load/StoreNameField (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Review feedback Created 7 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 V(ConstantD) \ 88 V(ConstantD) \
89 V(ConstantI) \ 89 V(ConstantI) \
90 V(ConstantT) \ 90 V(ConstantT) \
91 V(Context) \ 91 V(Context) \
92 V(DebugBreak) \ 92 V(DebugBreak) \
93 V(DeclareGlobals) \ 93 V(DeclareGlobals) \
94 V(DeleteProperty) \ 94 V(DeleteProperty) \
95 V(Deoptimize) \ 95 V(Deoptimize) \
96 V(DivI) \ 96 V(DivI) \
97 V(DoubleToI) \ 97 V(DoubleToI) \
98 V(DoubleToSmi) \
98 V(DummyUse) \ 99 V(DummyUse) \
99 V(ElementsKind) \ 100 V(ElementsKind) \
100 V(FixedArrayBaseLength) \ 101 V(FixedArrayBaseLength) \
101 V(MapEnumLength) \ 102 V(MapEnumLength) \
102 V(FunctionLiteral) \ 103 V(FunctionLiteral) \
103 V(GetCachedArrayIndex) \ 104 V(GetCachedArrayIndex) \
104 V(GlobalObject) \ 105 V(GlobalObject) \
105 V(GlobalReceiver) \ 106 V(GlobalReceiver) \
106 V(Goto) \ 107 V(Goto) \
107 V(HasCachedArrayIndexAndBranch) \ 108 V(HasCachedArrayIndexAndBranch) \
108 V(HasInstanceTypeAndBranch) \ 109 V(HasInstanceTypeAndBranch) \
109 V(In) \ 110 V(In) \
110 V(InstanceOf) \ 111 V(InstanceOf) \
111 V(InstanceOfKnownGlobal) \ 112 V(InstanceOfKnownGlobal) \
112 V(InstanceSize) \ 113 V(InstanceSize) \
113 V(InstructionGap) \ 114 V(InstructionGap) \
114 V(Integer32ToDouble) \ 115 V(Integer32ToDouble) \
116 V(Integer32ToSmi) \
115 V(Uint32ToDouble) \ 117 V(Uint32ToDouble) \
116 V(InvokeFunction) \ 118 V(InvokeFunction) \
117 V(IsConstructCallAndBranch) \ 119 V(IsConstructCallAndBranch) \
118 V(IsObjectAndBranch) \ 120 V(IsObjectAndBranch) \
119 V(IsStringAndBranch) \ 121 V(IsStringAndBranch) \
120 V(IsSmiAndBranch) \ 122 V(IsSmiAndBranch) \
121 V(IsUndetectableAndBranch) \ 123 V(IsUndetectableAndBranch) \
122 V(Label) \ 124 V(Label) \
123 V(LazyBailout) \ 125 V(LazyBailout) \
124 V(LoadContextSlot) \ 126 V(LoadContextSlot) \
(...skipping 1755 matching lines...) Expand 10 before | Expand all | Expand 10 after
1880 explicit LInteger32ToDouble(LOperand* value) { 1882 explicit LInteger32ToDouble(LOperand* value) {
1881 inputs_[0] = value; 1883 inputs_[0] = value;
1882 } 1884 }
1883 1885
1884 LOperand* value() { return inputs_[0]; } 1886 LOperand* value() { return inputs_[0]; }
1885 1887
1886 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double") 1888 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double")
1887 }; 1889 };
1888 1890
1889 1891
1892 class LInteger32ToSmi: public LTemplateInstruction<1, 1, 0> {
1893 public:
1894 explicit LInteger32ToSmi(LOperand* value) {
1895 inputs_[0] = value;
1896 }
1897
1898 LOperand* value() { return inputs_[0]; }
1899
1900 DECLARE_CONCRETE_INSTRUCTION(Integer32ToSmi, "int32-to-smi")
1901 DECLARE_HYDROGEN_ACCESSOR(Change)
1902 };
1903
1904
1890 class LUint32ToDouble: public LTemplateInstruction<1, 1, 1> { 1905 class LUint32ToDouble: public LTemplateInstruction<1, 1, 1> {
1891 public: 1906 public:
1892 explicit LUint32ToDouble(LOperand* value, LOperand* temp) { 1907 explicit LUint32ToDouble(LOperand* value, LOperand* temp) {
1893 inputs_[0] = value; 1908 inputs_[0] = value;
1894 temps_[0] = temp; 1909 temps_[0] = temp;
1895 } 1910 }
1896 1911
1897 LOperand* value() { return inputs_[0]; } 1912 LOperand* value() { return inputs_[0]; }
1898 LOperand* temp() { return temps_[0]; } 1913 LOperand* temp() { return temps_[0]; }
1899 1914
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1951 1966
1952 LOperand* value() { return inputs_[0]; } 1967 LOperand* value() { return inputs_[0]; }
1953 1968
1954 DECLARE_CONCRETE_INSTRUCTION(DoubleToI, "double-to-i") 1969 DECLARE_CONCRETE_INSTRUCTION(DoubleToI, "double-to-i")
1955 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation) 1970 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation)
1956 1971
1957 bool truncating() { return hydrogen()->CanTruncateToInt32(); } 1972 bool truncating() { return hydrogen()->CanTruncateToInt32(); }
1958 }; 1973 };
1959 1974
1960 1975
1976 class LDoubleToSmi: public LTemplateInstruction<1, 1, 0> {
1977 public:
1978 explicit LDoubleToSmi(LOperand* value) {
1979 inputs_[0] = value;
1980 }
1981
1982 LOperand* value() { return inputs_[0]; }
1983
1984 DECLARE_CONCRETE_INSTRUCTION(DoubleToSmi, "double-to-smi")
1985 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation)
1986 };
1987
1988
1961 // Truncating conversion from a tagged value to an int32. 1989 // Truncating conversion from a tagged value to an int32.
1962 class LTaggedToI: public LTemplateInstruction<1, 1, 1> { 1990 class LTaggedToI: public LTemplateInstruction<1, 1, 1> {
1963 public: 1991 public:
1964 LTaggedToI(LOperand* value, LOperand* temp) { 1992 LTaggedToI(LOperand* value, LOperand* temp) {
1965 inputs_[0] = value; 1993 inputs_[0] = value;
1966 temps_[0] = temp; 1994 temps_[0] = temp;
1967 } 1995 }
1968 1996
1969 LOperand* value() { return inputs_[0]; } 1997 LOperand* value() { return inputs_[0]; }
1970 LOperand* temp() { return temps_[0]; } 1998 LOperand* temp() { return temps_[0]; }
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
2258 DECLARE_CONCRETE_INSTRUCTION(CheckPrototypeMaps, "check-prototype-maps") 2286 DECLARE_CONCRETE_INSTRUCTION(CheckPrototypeMaps, "check-prototype-maps")
2259 DECLARE_HYDROGEN_ACCESSOR(CheckPrototypeMaps) 2287 DECLARE_HYDROGEN_ACCESSOR(CheckPrototypeMaps)
2260 2288
2261 ZoneList<Handle<JSObject> >* prototypes() const { 2289 ZoneList<Handle<JSObject> >* prototypes() const {
2262 return hydrogen()->prototypes(); 2290 return hydrogen()->prototypes();
2263 } 2291 }
2264 ZoneList<Handle<Map> >* maps() const { return hydrogen()->maps(); } 2292 ZoneList<Handle<Map> >* maps() const { return hydrogen()->maps(); }
2265 }; 2293 };
2266 2294
2267 2295
2268 class LCheckSmi: public LTemplateInstruction<0, 1, 0> { 2296 class LCheckSmi: public LTemplateInstruction<1, 1, 0> {
2269 public: 2297 public:
2270 explicit LCheckSmi(LOperand* value) { 2298 explicit LCheckSmi(LOperand* value) {
2271 inputs_[0] = value; 2299 inputs_[0] = value;
2272 } 2300 }
2273 2301
2274 LOperand* value() { return inputs_[0]; } 2302 LOperand* value() { return inputs_[0]; }
2275 2303
2276 DECLARE_CONCRETE_INSTRUCTION(CheckSmi, "check-smi") 2304 DECLARE_CONCRETE_INSTRUCTION(CheckSmi, "check-smi")
2277 }; 2305 };
2278 2306
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
2714 2742
2715 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2743 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2716 }; 2744 };
2717 2745
2718 #undef DECLARE_HYDROGEN_ACCESSOR 2746 #undef DECLARE_HYDROGEN_ACCESSOR
2719 #undef DECLARE_CONCRETE_INSTRUCTION 2747 #undef DECLARE_CONCRETE_INSTRUCTION
2720 2748
2721 } } // namespace v8::int 2749 } } // namespace v8::int
2722 2750
2723 #endif // V8_X64_LITHIUM_X64_H_ 2751 #endif // V8_X64_LITHIUM_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698