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

Side by Side Diff: src/hydrogen-instructions.h

Issue 5806001: Support %_IsObject in Crankshaft. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 10 years 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 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 // HTypeofIs 133 // HTypeofIs
134 // HLoadNamedField 134 // HLoadNamedField
135 // HPushArgument 135 // HPushArgument
136 // HTypeof 136 // HTypeof
137 // HUnaryMathOperation 137 // HUnaryMathOperation
138 // HUnaryPredicate 138 // HUnaryPredicate
139 // HClassOfTest 139 // HClassOfTest
140 // HHasCachedArrayIndex 140 // HHasCachedArrayIndex
141 // HHasInstanceType 141 // HHasInstanceType
142 // HIsNull 142 // HIsNull
143 // HIsObject
143 // HIsSmi 144 // HIsSmi
144 // HValueOf 145 // HValueOf
145 // HUnknownOSRValue 146 // HUnknownOSRValue
146 // HPhi 147 // HPhi
147 148
148 #define HYDROGEN_ALL_INSTRUCTION_LIST(V) \ 149 #define HYDROGEN_ALL_INSTRUCTION_LIST(V) \
149 V(ArithmeticBinaryOperation) \ 150 V(ArithmeticBinaryOperation) \
150 V(BinaryOperation) \ 151 V(BinaryOperation) \
151 V(BitwiseBinaryOperation) \ 152 V(BitwiseBinaryOperation) \
152 V(Call) \ 153 V(Call) \
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 V(DeleteProperty) \ 202 V(DeleteProperty) \
202 V(Deoptimize) \ 203 V(Deoptimize) \
203 V(Div) \ 204 V(Div) \
204 V(EnterInlined) \ 205 V(EnterInlined) \
205 V(FunctionLiteral) \ 206 V(FunctionLiteral) \
206 V(GlobalObject) \ 207 V(GlobalObject) \
207 V(GlobalReceiver) \ 208 V(GlobalReceiver) \
208 V(Goto) \ 209 V(Goto) \
209 V(InstanceOf) \ 210 V(InstanceOf) \
210 V(IsNull) \ 211 V(IsNull) \
212 V(IsObject) \
211 V(IsSmi) \ 213 V(IsSmi) \
212 V(HasInstanceType) \ 214 V(HasInstanceType) \
213 V(HasCachedArrayIndex) \ 215 V(HasCachedArrayIndex) \
214 V(ClassOfTest) \ 216 V(ClassOfTest) \
215 V(LeaveInlined) \ 217 V(LeaveInlined) \
216 V(LoadElements) \ 218 V(LoadElements) \
217 V(LoadGlobal) \ 219 V(LoadGlobal) \
218 V(LoadKeyedFastElement) \ 220 V(LoadKeyedFastElement) \
219 V(LoadKeyedGeneric) \ 221 V(LoadKeyedGeneric) \
220 V(LoadNamedField) \ 222 V(LoadNamedField) \
(...skipping 1868 matching lines...) Expand 10 before | Expand all | Expand 10 after
2089 2091
2090 bool is_strict() const { return is_strict_; } 2092 bool is_strict() const { return is_strict_; }
2091 2093
2092 DECLARE_CONCRETE_INSTRUCTION(IsNull, "is_null") 2094 DECLARE_CONCRETE_INSTRUCTION(IsNull, "is_null")
2093 2095
2094 private: 2096 private:
2095 bool is_strict_; 2097 bool is_strict_;
2096 }; 2098 };
2097 2099
2098 2100
2101 class HIsObject: public HUnaryPredicate {
2102 public:
2103 explicit HIsObject(HValue* value) : HUnaryPredicate(value) { }
2104
2105 DECLARE_CONCRETE_INSTRUCTION(IsObject, "is_object")
2106 };
2107
2108
2099 class HIsSmi: public HUnaryPredicate { 2109 class HIsSmi: public HUnaryPredicate {
2100 public: 2110 public:
2101 explicit HIsSmi(HValue* value) : HUnaryPredicate(value) { } 2111 explicit HIsSmi(HValue* value) : HUnaryPredicate(value) { }
2102 2112
2103 DECLARE_CONCRETE_INSTRUCTION(IsSmi, "is_smi") 2113 DECLARE_CONCRETE_INSTRUCTION(IsSmi, "is_smi")
2104 }; 2114 };
2105 2115
2106 2116
2107 class HHasInstanceType: public HUnaryPredicate { 2117 class HHasInstanceType: public HUnaryPredicate {
2108 public: 2118 public:
(...skipping 787 matching lines...) Expand 10 before | Expand all | Expand 10 after
2896 HValue* object() const { return left(); } 2906 HValue* object() const { return left(); }
2897 HValue* key() const { return right(); } 2907 HValue* key() const { return right(); }
2898 }; 2908 };
2899 2909
2900 #undef DECLARE_INSTRUCTION 2910 #undef DECLARE_INSTRUCTION
2901 #undef DECLARE_CONCRETE_INSTRUCTION 2911 #undef DECLARE_CONCRETE_INSTRUCTION
2902 2912
2903 } } // namespace v8::internal 2913 } } // namespace v8::internal
2904 2914
2905 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 2915 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW
« src/arm/lithium-arm.cc ('K') | « src/hydrogen.cc ('k') | src/ia32/lithium-codegen-ia32.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698