| 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 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 V(CheckedUint32ToInt32) \ | 193 V(CheckedUint32ToInt32) \ |
| 194 V(CheckedFloat64ToInt32) \ | 194 V(CheckedFloat64ToInt32) \ |
| 195 V(CheckedTaggedToInt32) \ | 195 V(CheckedTaggedToInt32) \ |
| 196 V(CheckedTruncateTaggedToWord32) \ | 196 V(CheckedTruncateTaggedToWord32) \ |
| 197 V(CheckedTaggedToFloat64) | 197 V(CheckedTaggedToFloat64) |
| 198 | 198 |
| 199 #define SIMPLIFIED_COMPARE_BINOP_LIST(V) \ | 199 #define SIMPLIFIED_COMPARE_BINOP_LIST(V) \ |
| 200 V(NumberEqual) \ | 200 V(NumberEqual) \ |
| 201 V(NumberLessThan) \ | 201 V(NumberLessThan) \ |
| 202 V(NumberLessThanOrEqual) \ | 202 V(NumberLessThanOrEqual) \ |
| 203 V(SpeculativeNumberEqual) \ |
| 204 V(SpeculativeNumberLessThan) \ |
| 205 V(SpeculativeNumberLessThanOrEqual) \ |
| 203 V(ReferenceEqual) \ | 206 V(ReferenceEqual) \ |
| 204 V(StringEqual) \ | 207 V(StringEqual) \ |
| 205 V(StringLessThan) \ | 208 V(StringLessThan) \ |
| 206 V(StringLessThanOrEqual) | 209 V(StringLessThanOrEqual) |
| 207 | 210 |
| 208 #define SIMPLIFIED_OTHER_OP_LIST(V) \ | 211 #define SIMPLIFIED_NUMBER_BINOP_LIST(V) \ |
| 209 V(PlainPrimitiveToNumber) \ | |
| 210 V(PlainPrimitiveToWord32) \ | |
| 211 V(PlainPrimitiveToFloat64) \ | |
| 212 V(BooleanNot) \ | |
| 213 V(SpeculativeNumberAdd) \ | |
| 214 V(SpeculativeNumberSubtract) \ | |
| 215 V(SpeculativeNumberMultiply) \ | |
| 216 V(SpeculativeNumberDivide) \ | |
| 217 V(SpeculativeNumberModulus) \ | |
| 218 V(SpeculativeNumberEqual) \ | |
| 219 V(SpeculativeNumberLessThan) \ | |
| 220 V(SpeculativeNumberLessThanOrEqual) \ | |
| 221 V(NumberAdd) \ | 212 V(NumberAdd) \ |
| 222 V(NumberSubtract) \ | 213 V(NumberSubtract) \ |
| 223 V(NumberMultiply) \ | 214 V(NumberMultiply) \ |
| 224 V(NumberDivide) \ | 215 V(NumberDivide) \ |
| 225 V(NumberModulus) \ | 216 V(NumberModulus) \ |
| 226 V(NumberBitwiseOr) \ | 217 V(NumberBitwiseOr) \ |
| 227 V(NumberBitwiseXor) \ | 218 V(NumberBitwiseXor) \ |
| 228 V(NumberBitwiseAnd) \ | 219 V(NumberBitwiseAnd) \ |
| 229 V(NumberShiftLeft) \ | 220 V(NumberShiftLeft) \ |
| 230 V(NumberShiftRight) \ | 221 V(NumberShiftRight) \ |
| 231 V(NumberShiftRightLogical) \ | 222 V(NumberShiftRightLogical) \ |
| 232 V(SpeculativeNumberBitwiseAnd) \ | 223 V(NumberAtan2) \ |
| 233 V(SpeculativeNumberBitwiseOr) \ | |
| 234 V(SpeculativeNumberBitwiseXor) \ | |
| 235 V(SpeculativeNumberShiftLeft) \ | |
| 236 V(SpeculativeNumberShiftRight) \ | |
| 237 V(SpeculativeNumberShiftRightLogical) \ | |
| 238 V(NumberImul) \ | 224 V(NumberImul) \ |
| 239 V(NumberAbs) \ | |
| 240 V(NumberClz32) \ | |
| 241 V(NumberCeil) \ | |
| 242 V(NumberCos) \ | |
| 243 V(NumberCosh) \ | |
| 244 V(NumberFloor) \ | |
| 245 V(NumberFround) \ | |
| 246 V(NumberAcos) \ | |
| 247 V(NumberAcosh) \ | |
| 248 V(NumberAsin) \ | |
| 249 V(NumberAsinh) \ | |
| 250 V(NumberAtan) \ | |
| 251 V(NumberAtanh) \ | |
| 252 V(NumberAtan2) \ | |
| 253 V(NumberExp) \ | |
| 254 V(NumberExpm1) \ | |
| 255 V(NumberLog) \ | |
| 256 V(NumberLog1p) \ | |
| 257 V(NumberLog2) \ | |
| 258 V(NumberLog10) \ | |
| 259 V(NumberMax) \ | 225 V(NumberMax) \ |
| 260 V(NumberMin) \ | 226 V(NumberMin) \ |
| 261 V(NumberCbrt) \ | 227 V(NumberPow) |
| 262 V(NumberPow) \ | 228 |
| 263 V(NumberRound) \ | 229 #define SIMPLIFIED_SPECULATIVE_NUMBER_BINOP_LIST(V) \ |
| 264 V(NumberSign) \ | 230 V(SpeculativeNumberAdd) \ |
| 265 V(NumberSin) \ | 231 V(SpeculativeNumberSubtract) \ |
| 266 V(NumberSinh) \ | 232 V(SpeculativeNumberMultiply) \ |
| 267 V(NumberSqrt) \ | 233 V(SpeculativeNumberDivide) \ |
| 268 V(NumberTan) \ | 234 V(SpeculativeNumberModulus) \ |
| 269 V(NumberTanh) \ | 235 V(SpeculativeNumberBitwiseAnd) \ |
| 270 V(NumberTrunc) \ | 236 V(SpeculativeNumberBitwiseOr) \ |
| 271 V(NumberToInt32) \ | 237 V(SpeculativeNumberBitwiseXor) \ |
| 272 V(NumberToUint32) \ | 238 V(SpeculativeNumberShiftLeft) \ |
| 273 V(NumberSilenceNaN) \ | 239 V(SpeculativeNumberShiftRight) \ |
| 274 V(StringCharCodeAt) \ | 240 V(SpeculativeNumberShiftRightLogical) |
| 275 V(StringFromCharCode) \ | 241 |
| 276 V(CheckBounds) \ | 242 #define SIMPLIFIED_NUMBER_UNOP_LIST(V) \ |
| 277 V(CheckIf) \ | 243 V(NumberAbs) \ |
| 278 V(CheckMaps) \ | 244 V(NumberAcos) \ |
| 279 V(CheckNumber) \ | 245 V(NumberAcosh) \ |
| 280 V(CheckString) \ | 246 V(NumberAsin) \ |
| 281 V(CheckTaggedPointer) \ | 247 V(NumberAsinh) \ |
| 282 V(CheckTaggedSigned) \ | 248 V(NumberAtan) \ |
| 283 V(CheckFloat64Hole) \ | 249 V(NumberAtanh) \ |
| 284 V(CheckTaggedHole) \ | 250 V(NumberCbrt) \ |
| 285 V(Allocate) \ | 251 V(NumberCeil) \ |
| 286 V(LoadField) \ | 252 V(NumberClz32) \ |
| 287 V(LoadBuffer) \ | 253 V(NumberCos) \ |
| 288 V(LoadElement) \ | 254 V(NumberCosh) \ |
| 289 V(LoadTypedElement) \ | 255 V(NumberExp) \ |
| 290 V(StoreField) \ | 256 V(NumberExpm1) \ |
| 291 V(StoreBuffer) \ | 257 V(NumberFloor) \ |
| 292 V(StoreElement) \ | 258 V(NumberFround) \ |
| 293 V(StoreTypedElement) \ | 259 V(NumberLog) \ |
| 294 V(ObjectIsCallable) \ | 260 V(NumberLog1p) \ |
| 295 V(ObjectIsNumber) \ | 261 V(NumberLog2) \ |
| 296 V(ObjectIsReceiver) \ | 262 V(NumberLog10) \ |
| 297 V(ObjectIsSmi) \ | 263 V(NumberRound) \ |
| 298 V(ObjectIsString) \ | 264 V(NumberSign) \ |
| 299 V(ObjectIsUndetectable) \ | 265 V(NumberSin) \ |
| 266 V(NumberSinh) \ |
| 267 V(NumberSqrt) \ |
| 268 V(NumberTan) \ |
| 269 V(NumberTanh) \ |
| 270 V(NumberTrunc) \ |
| 271 V(NumberToInt32) \ |
| 272 V(NumberToUint32) \ |
| 273 V(NumberSilenceNaN) |
| 274 |
| 275 #define SIMPLIFIED_OTHER_OP_LIST(V) \ |
| 276 V(PlainPrimitiveToNumber) \ |
| 277 V(PlainPrimitiveToWord32) \ |
| 278 V(PlainPrimitiveToFloat64) \ |
| 279 V(BooleanNot) \ |
| 280 V(StringCharCodeAt) \ |
| 281 V(StringFromCharCode) \ |
| 282 V(CheckBounds) \ |
| 283 V(CheckIf) \ |
| 284 V(CheckMaps) \ |
| 285 V(CheckNumber) \ |
| 286 V(CheckString) \ |
| 287 V(CheckTaggedPointer) \ |
| 288 V(CheckTaggedSigned) \ |
| 289 V(CheckFloat64Hole) \ |
| 290 V(CheckTaggedHole) \ |
| 291 V(Allocate) \ |
| 292 V(LoadField) \ |
| 293 V(LoadBuffer) \ |
| 294 V(LoadElement) \ |
| 295 V(LoadTypedElement) \ |
| 296 V(StoreField) \ |
| 297 V(StoreBuffer) \ |
| 298 V(StoreElement) \ |
| 299 V(StoreTypedElement) \ |
| 300 V(ObjectIsCallable) \ |
| 301 V(ObjectIsNumber) \ |
| 302 V(ObjectIsReceiver) \ |
| 303 V(ObjectIsSmi) \ |
| 304 V(ObjectIsString) \ |
| 305 V(ObjectIsUndetectable) \ |
| 300 V(TransitionElementsKind) | 306 V(TransitionElementsKind) |
| 301 | 307 |
| 302 #define SIMPLIFIED_OP_LIST(V) \ | 308 #define SIMPLIFIED_OP_LIST(V) \ |
| 303 SIMPLIFIED_CHANGE_OP_LIST(V) \ | 309 SIMPLIFIED_CHANGE_OP_LIST(V) \ |
| 304 SIMPLIFIED_CHECKED_OP_LIST(V) \ | 310 SIMPLIFIED_CHECKED_OP_LIST(V) \ |
| 305 SIMPLIFIED_COMPARE_BINOP_LIST(V) \ | 311 SIMPLIFIED_COMPARE_BINOP_LIST(V) \ |
| 312 SIMPLIFIED_NUMBER_BINOP_LIST(V) \ |
| 313 SIMPLIFIED_SPECULATIVE_NUMBER_BINOP_LIST(V) \ |
| 314 SIMPLIFIED_NUMBER_UNOP_LIST(V) \ |
| 306 SIMPLIFIED_OTHER_OP_LIST(V) | 315 SIMPLIFIED_OTHER_OP_LIST(V) |
| 307 | 316 |
| 308 // Opcodes for Machine-level operators. | 317 // Opcodes for Machine-level operators. |
| 309 #define MACHINE_COMPARE_BINOP_LIST(V) \ | 318 #define MACHINE_COMPARE_BINOP_LIST(V) \ |
| 310 V(Word32Equal) \ | 319 V(Word32Equal) \ |
| 311 V(Word64Equal) \ | 320 V(Word64Equal) \ |
| 312 V(Int32LessThan) \ | 321 V(Int32LessThan) \ |
| 313 V(Int32LessThanOrEqual) \ | 322 V(Int32LessThanOrEqual) \ |
| 314 V(Uint32LessThan) \ | 323 V(Uint32LessThan) \ |
| 315 V(Uint32LessThanOrEqual) \ | 324 V(Uint32LessThanOrEqual) \ |
| (...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 746 } | 755 } |
| 747 }; | 756 }; |
| 748 | 757 |
| 749 std::ostream& operator<<(std::ostream&, IrOpcode::Value); | 758 std::ostream& operator<<(std::ostream&, IrOpcode::Value); |
| 750 | 759 |
| 751 } // namespace compiler | 760 } // namespace compiler |
| 752 } // namespace internal | 761 } // namespace internal |
| 753 } // namespace v8 | 762 } // namespace v8 |
| 754 | 763 |
| 755 #endif // V8_COMPILER_OPCODES_H_ | 764 #endif // V8_COMPILER_OPCODES_H_ |
| OLD | NEW |