OLD | NEW |
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_COMPILER_OPCODES_H_ | 5 #ifndef V8_COMPILER_OPCODES_H_ |
6 #define V8_COMPILER_OPCODES_H_ | 6 #define V8_COMPILER_OPCODES_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 // Opcodes for control operators. | 10 // Opcodes for control operators. |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 // Opcodes for VirtuaMachine-level operators. | 166 // Opcodes for VirtuaMachine-level operators. |
167 #define SIMPLIFIED_COMPARE_BINOP_LIST(V) \ | 167 #define SIMPLIFIED_COMPARE_BINOP_LIST(V) \ |
168 V(NumberEqual) \ | 168 V(NumberEqual) \ |
169 V(NumberLessThan) \ | 169 V(NumberLessThan) \ |
170 V(NumberLessThanOrEqual) \ | 170 V(NumberLessThanOrEqual) \ |
171 V(ReferenceEqual) \ | 171 V(ReferenceEqual) \ |
172 V(StringEqual) \ | 172 V(StringEqual) \ |
173 V(StringLessThan) \ | 173 V(StringLessThan) \ |
174 V(StringLessThanOrEqual) | 174 V(StringLessThanOrEqual) |
175 | 175 |
176 #define SIMPLIFIED_OP_LIST(V) \ | 176 #define SIMPLIFIED_OP_LIST(V) \ |
177 SIMPLIFIED_COMPARE_BINOP_LIST(V) \ | 177 SIMPLIFIED_COMPARE_BINOP_LIST(V) \ |
178 V(PlainPrimitiveToNumber) \ | 178 V(PlainPrimitiveToNumber) \ |
179 V(PlainPrimitiveToWord32) \ | 179 V(PlainPrimitiveToWord32) \ |
180 V(PlainPrimitiveToFloat64) \ | 180 V(PlainPrimitiveToFloat64) \ |
181 V(BooleanNot) \ | 181 V(BooleanNot) \ |
182 V(BooleanToNumber) \ | 182 V(BooleanToNumber) \ |
183 V(SpeculativeNumberAdd) \ | 183 V(SpeculativeNumberAdd) \ |
184 V(SpeculativeNumberSubtract) \ | 184 V(SpeculativeNumberSubtract) \ |
185 V(NumberAdd) \ | 185 V(SpeculativeNumberEqual) \ |
186 V(NumberSubtract) \ | 186 V(SpeculativeNumberLessThan) \ |
187 V(NumberMultiply) \ | 187 V(SpeculativeNumberLessThanOrEqual) \ |
188 V(NumberDivide) \ | 188 V(NumberAdd) \ |
189 V(NumberModulus) \ | 189 V(NumberSubtract) \ |
190 V(NumberBitwiseOr) \ | 190 V(NumberMultiply) \ |
191 V(NumberBitwiseXor) \ | 191 V(NumberDivide) \ |
192 V(NumberBitwiseAnd) \ | 192 V(NumberModulus) \ |
193 V(NumberShiftLeft) \ | 193 V(NumberBitwiseOr) \ |
194 V(NumberShiftRight) \ | 194 V(NumberBitwiseXor) \ |
195 V(NumberShiftRightLogical) \ | 195 V(NumberBitwiseAnd) \ |
196 V(NumberImul) \ | 196 V(NumberShiftLeft) \ |
197 V(NumberClz32) \ | 197 V(NumberShiftRight) \ |
198 V(NumberCeil) \ | 198 V(NumberShiftRightLogical) \ |
199 V(NumberFloor) \ | 199 V(NumberImul) \ |
200 V(NumberFround) \ | 200 V(NumberClz32) \ |
201 V(NumberAtan) \ | 201 V(NumberCeil) \ |
202 V(NumberAtan2) \ | 202 V(NumberFloor) \ |
203 V(NumberLog) \ | 203 V(NumberFround) \ |
204 V(NumberLog1p) \ | 204 V(NumberAtan) \ |
205 V(NumberRound) \ | 205 V(NumberAtan2) \ |
206 V(NumberSqrt) \ | 206 V(NumberLog) \ |
207 V(NumberTrunc) \ | 207 V(NumberLog1p) \ |
208 V(NumberToInt32) \ | 208 V(NumberRound) \ |
209 V(NumberToUint32) \ | 209 V(NumberSqrt) \ |
210 V(NumberSilenceNaN) \ | 210 V(NumberTrunc) \ |
211 V(StringFromCharCode) \ | 211 V(NumberToInt32) \ |
212 V(StringToNumber) \ | 212 V(NumberToUint32) \ |
213 V(ChangeTaggedSignedToInt32) \ | 213 V(NumberSilenceNaN) \ |
214 V(ChangeTaggedToInt32) \ | 214 V(StringFromCharCode) \ |
215 V(ChangeTaggedToUint32) \ | 215 V(StringToNumber) \ |
216 V(ChangeTaggedToFloat64) \ | 216 V(ChangeTaggedSignedToInt32) \ |
217 V(ChangeInt31ToTaggedSigned) \ | 217 V(ChangeTaggedToInt32) \ |
218 V(ChangeInt32ToTagged) \ | 218 V(ChangeTaggedToUint32) \ |
219 V(ChangeUint32ToTagged) \ | 219 V(ChangeTaggedToFloat64) \ |
220 V(ChangeFloat64ToTagged) \ | 220 V(ChangeInt31ToTaggedSigned) \ |
221 V(ChangeTaggedToBit) \ | 221 V(ChangeInt32ToTagged) \ |
222 V(ChangeBitToTagged) \ | 222 V(ChangeUint32ToTagged) \ |
223 V(CheckBounds) \ | 223 V(ChangeFloat64ToTagged) \ |
224 V(CheckedUint32ToInt32) \ | 224 V(ChangeTaggedToBit) \ |
225 V(CheckedFloat64ToInt32) \ | 225 V(ChangeBitToTagged) \ |
226 V(CheckedTaggedToInt32) \ | 226 V(CheckBounds) \ |
227 V(CheckedTaggedToFloat64) \ | 227 V(CheckedUint32ToInt32) \ |
228 V(CheckFloat64Hole) \ | 228 V(CheckedFloat64ToInt32) \ |
229 V(CheckTaggedHole) \ | 229 V(CheckedTaggedToInt32) \ |
230 V(CheckIf) \ | 230 V(CheckedTaggedToFloat64) \ |
231 V(TruncateTaggedToWord32) \ | 231 V(CheckFloat64Hole) \ |
232 V(TruncateTaggedToFloat64) \ | 232 V(CheckTaggedHole) \ |
233 V(Allocate) \ | 233 V(CheckIf) \ |
234 V(LoadField) \ | 234 V(TruncateTaggedToWord32) \ |
235 V(LoadBuffer) \ | 235 V(TruncateTaggedToFloat64) \ |
236 V(LoadElement) \ | 236 V(Allocate) \ |
237 V(StoreField) \ | 237 V(LoadField) \ |
238 V(StoreBuffer) \ | 238 V(LoadBuffer) \ |
239 V(StoreElement) \ | 239 V(LoadElement) \ |
240 V(ObjectIsCallable) \ | 240 V(StoreField) \ |
241 V(ObjectIsNumber) \ | 241 V(StoreBuffer) \ |
242 V(ObjectIsReceiver) \ | 242 V(StoreElement) \ |
243 V(ObjectIsSmi) \ | 243 V(ObjectIsCallable) \ |
244 V(ObjectIsString) \ | 244 V(ObjectIsNumber) \ |
245 V(ObjectIsUndetectable) \ | 245 V(ObjectIsReceiver) \ |
| 246 V(ObjectIsSmi) \ |
| 247 V(ObjectIsString) \ |
| 248 V(ObjectIsUndetectable) \ |
246 V(TypeGuard) | 249 V(TypeGuard) |
247 | 250 |
248 // Opcodes for Machine-level operators. | 251 // Opcodes for Machine-level operators. |
249 #define MACHINE_COMPARE_BINOP_LIST(V) \ | 252 #define MACHINE_COMPARE_BINOP_LIST(V) \ |
250 V(Word32Equal) \ | 253 V(Word32Equal) \ |
251 V(Word64Equal) \ | 254 V(Word64Equal) \ |
252 V(Int32LessThan) \ | 255 V(Int32LessThan) \ |
253 V(Int32LessThanOrEqual) \ | 256 V(Int32LessThanOrEqual) \ |
254 V(Uint32LessThan) \ | 257 V(Uint32LessThan) \ |
255 V(Uint32LessThanOrEqual) \ | 258 V(Uint32LessThanOrEqual) \ |
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
659 } | 662 } |
660 }; | 663 }; |
661 | 664 |
662 std::ostream& operator<<(std::ostream&, IrOpcode::Value); | 665 std::ostream& operator<<(std::ostream&, IrOpcode::Value); |
663 | 666 |
664 } // namespace compiler | 667 } // namespace compiler |
665 } // namespace internal | 668 } // namespace internal |
666 } // namespace v8 | 669 } // namespace v8 |
667 | 670 |
668 #endif // V8_COMPILER_OPCODES_H_ | 671 #endif // V8_COMPILER_OPCODES_H_ |
OLD | NEW |