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 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 V(Int64LessThanOrEqual) \ | 335 V(Int64LessThanOrEqual) \ |
336 V(Uint64LessThan) \ | 336 V(Uint64LessThan) \ |
337 V(Uint64LessThanOrEqual) \ | 337 V(Uint64LessThanOrEqual) \ |
338 V(Float32Equal) \ | 338 V(Float32Equal) \ |
339 V(Float32LessThan) \ | 339 V(Float32LessThan) \ |
340 V(Float32LessThanOrEqual) \ | 340 V(Float32LessThanOrEqual) \ |
341 V(Float64Equal) \ | 341 V(Float64Equal) \ |
342 V(Float64LessThan) \ | 342 V(Float64LessThan) \ |
343 V(Float64LessThanOrEqual) | 343 V(Float64LessThanOrEqual) |
344 | 344 |
| 345 #define MACHINE_UNOP_32_LIST(V) \ |
| 346 V(Word32Clz) \ |
| 347 V(Word32Ctz) \ |
| 348 V(Word32ReverseBits) \ |
| 349 V(Word32ReverseBytes) |
| 350 |
| 351 #define MACHINE_BINOP_32_LIST(V) \ |
| 352 V(Word32And) \ |
| 353 V(Word32Or) \ |
| 354 V(Word32Xor) \ |
| 355 V(Word32Shl) \ |
| 356 V(Word32Shr) \ |
| 357 V(Word32Sar) \ |
| 358 V(Word32Ror) \ |
| 359 V(Int32Add) \ |
| 360 V(Int32AddWithOverflow) \ |
| 361 V(Int32Sub) \ |
| 362 V(Int32SubWithOverflow) \ |
| 363 V(Int32Mul) \ |
| 364 V(Int32MulWithOverflow) \ |
| 365 V(Int32MulHigh) \ |
| 366 V(Int32Div) \ |
| 367 V(Int32Mod) \ |
| 368 V(Uint32Div) \ |
| 369 V(Uint32Mod) \ |
| 370 V(Uint32MulHigh) |
| 371 |
| 372 #define MACHINE_BINOP_64_LIST(V) \ |
| 373 V(Word64And) \ |
| 374 V(Word64Or) \ |
| 375 V(Word64Xor) \ |
| 376 V(Word64Shl) \ |
| 377 V(Word64Shr) \ |
| 378 V(Word64Sar) \ |
| 379 V(Word64Ror) \ |
| 380 V(Int64Add) \ |
| 381 V(Int64AddWithOverflow) \ |
| 382 V(Int64Sub) \ |
| 383 V(Int64SubWithOverflow) \ |
| 384 V(Int64Mul) \ |
| 385 V(Int64Div) \ |
| 386 V(Int64Mod) \ |
| 387 V(Uint64Div) \ |
| 388 V(Uint64Mod) |
| 389 |
| 390 #define MACHINE_FLOAT32_UNOP_LIST(V) \ |
| 391 V(Float32Abs) \ |
| 392 V(Float32Neg) \ |
| 393 V(Float32RoundDown) \ |
| 394 V(Float32RoundTiesEven) \ |
| 395 V(Float32RoundTruncate) \ |
| 396 V(Float32RoundUp) \ |
| 397 V(Float32Sqrt) |
| 398 |
| 399 #define MACHINE_FLOAT32_BINOP_LIST(V) \ |
| 400 V(Float32Add) \ |
| 401 V(Float32Sub) \ |
| 402 V(Float32Mul) \ |
| 403 V(Float32Div) \ |
| 404 V(Float32Max) \ |
| 405 V(Float32Min) |
| 406 |
| 407 #define MACHINE_FLOAT64_UNOP_LIST(V) \ |
| 408 V(Float64Abs) \ |
| 409 V(Float64Acos) \ |
| 410 V(Float64Acosh) \ |
| 411 V(Float64Asin) \ |
| 412 V(Float64Asinh) \ |
| 413 V(Float64Atan) \ |
| 414 V(Float64Atanh) \ |
| 415 V(Float64Cbrt) \ |
| 416 V(Float64Cos) \ |
| 417 V(Float64Cosh) \ |
| 418 V(Float64Exp) \ |
| 419 V(Float64Expm1) \ |
| 420 V(Float64Log) \ |
| 421 V(Float64Log1p) \ |
| 422 V(Float64Log10) \ |
| 423 V(Float64Log2) \ |
| 424 V(Float64Neg) \ |
| 425 V(Float64RoundDown) \ |
| 426 V(Float64RoundTiesAway) \ |
| 427 V(Float64RoundTiesEven) \ |
| 428 V(Float64RoundTruncate) \ |
| 429 V(Float64RoundUp) \ |
| 430 V(Float64Sin) \ |
| 431 V(Float64Sinh) \ |
| 432 V(Float64Sqrt) \ |
| 433 V(Float64Tan) \ |
| 434 V(Float64Tanh) |
| 435 |
| 436 #define MACHINE_FLOAT64_BINOP_LIST(V) \ |
| 437 V(Float64Atan2) \ |
| 438 V(Float64Max) \ |
| 439 V(Float64Min) \ |
| 440 V(Float64Add) \ |
| 441 V(Float64Sub) \ |
| 442 V(Float64Mul) \ |
| 443 V(Float64Div) \ |
| 444 V(Float64Mod) \ |
| 445 V(Float64Pow) |
| 446 |
345 #define MACHINE_OP_LIST(V) \ | 447 #define MACHINE_OP_LIST(V) \ |
| 448 MACHINE_UNOP_32_LIST(V) \ |
| 449 MACHINE_BINOP_32_LIST(V) \ |
| 450 MACHINE_BINOP_64_LIST(V) \ |
346 MACHINE_COMPARE_BINOP_LIST(V) \ | 451 MACHINE_COMPARE_BINOP_LIST(V) \ |
| 452 MACHINE_FLOAT32_BINOP_LIST(V) \ |
| 453 MACHINE_FLOAT32_UNOP_LIST(V) \ |
| 454 MACHINE_FLOAT64_BINOP_LIST(V) \ |
| 455 MACHINE_FLOAT64_UNOP_LIST(V) \ |
347 V(DebugBreak) \ | 456 V(DebugBreak) \ |
348 V(Comment) \ | 457 V(Comment) \ |
349 V(Load) \ | 458 V(Load) \ |
350 V(Store) \ | 459 V(Store) \ |
351 V(StackSlot) \ | 460 V(StackSlot) \ |
352 V(Word32And) \ | |
353 V(Word32Or) \ | |
354 V(Word32Xor) \ | |
355 V(Word32Shl) \ | |
356 V(Word32Shr) \ | |
357 V(Word32Sar) \ | |
358 V(Word32Ror) \ | |
359 V(Word32Clz) \ | |
360 V(Word32Ctz) \ | |
361 V(Word32ReverseBits) \ | |
362 V(Word32ReverseBytes) \ | |
363 V(Word32Popcnt) \ | 461 V(Word32Popcnt) \ |
364 V(Word64Popcnt) \ | 462 V(Word64Popcnt) \ |
365 V(Word64And) \ | |
366 V(Word64Or) \ | |
367 V(Word64Xor) \ | |
368 V(Word64Shl) \ | |
369 V(Word64Shr) \ | |
370 V(Word64Sar) \ | |
371 V(Word64Ror) \ | |
372 V(Word64Clz) \ | 463 V(Word64Clz) \ |
373 V(Word64Ctz) \ | 464 V(Word64Ctz) \ |
374 V(Word64ReverseBits) \ | 465 V(Word64ReverseBits) \ |
375 V(Word64ReverseBytes) \ | 466 V(Word64ReverseBytes) \ |
376 V(Int32Add) \ | |
377 V(Int32AddWithOverflow) \ | |
378 V(Int32Sub) \ | |
379 V(Int32SubWithOverflow) \ | |
380 V(Int32Mul) \ | |
381 V(Int32MulWithOverflow) \ | |
382 V(Int32MulHigh) \ | |
383 V(Int32Div) \ | |
384 V(Int32Mod) \ | |
385 V(Uint32Div) \ | |
386 V(Uint32Mod) \ | |
387 V(Uint32MulHigh) \ | |
388 V(Int64Add) \ | |
389 V(Int64AddWithOverflow) \ | |
390 V(Int64Sub) \ | |
391 V(Int64SubWithOverflow) \ | |
392 V(Int64Mul) \ | |
393 V(Int64Div) \ | |
394 V(Int64Mod) \ | |
395 V(Uint64Div) \ | |
396 V(Uint64Mod) \ | |
397 V(BitcastTaggedToWord) \ | 467 V(BitcastTaggedToWord) \ |
398 V(BitcastWordToTagged) \ | 468 V(BitcastWordToTagged) \ |
399 V(BitcastWordToTaggedSigned) \ | 469 V(BitcastWordToTaggedSigned) \ |
400 V(TruncateFloat64ToWord32) \ | 470 V(TruncateFloat64ToWord32) \ |
401 V(ChangeFloat32ToFloat64) \ | 471 V(ChangeFloat32ToFloat64) \ |
402 V(ChangeFloat64ToInt32) \ | 472 V(ChangeFloat64ToInt32) \ |
403 V(ChangeFloat64ToUint32) \ | 473 V(ChangeFloat64ToUint32) \ |
404 V(Float64SilenceNaN) \ | 474 V(Float64SilenceNaN) \ |
405 V(TruncateFloat64ToUint32) \ | 475 V(TruncateFloat64ToUint32) \ |
406 V(TruncateFloat32ToInt32) \ | 476 V(TruncateFloat32ToInt32) \ |
(...skipping 12 matching lines...) Expand all Loading... |
419 V(RoundInt32ToFloat32) \ | 489 V(RoundInt32ToFloat32) \ |
420 V(RoundInt64ToFloat32) \ | 490 V(RoundInt64ToFloat32) \ |
421 V(RoundInt64ToFloat64) \ | 491 V(RoundInt64ToFloat64) \ |
422 V(RoundUint32ToFloat32) \ | 492 V(RoundUint32ToFloat32) \ |
423 V(RoundUint64ToFloat32) \ | 493 V(RoundUint64ToFloat32) \ |
424 V(RoundUint64ToFloat64) \ | 494 V(RoundUint64ToFloat64) \ |
425 V(BitcastFloat32ToInt32) \ | 495 V(BitcastFloat32ToInt32) \ |
426 V(BitcastFloat64ToInt64) \ | 496 V(BitcastFloat64ToInt64) \ |
427 V(BitcastInt32ToFloat32) \ | 497 V(BitcastInt32ToFloat32) \ |
428 V(BitcastInt64ToFloat64) \ | 498 V(BitcastInt64ToFloat64) \ |
429 V(Float32Add) \ | |
430 V(Float32Sub) \ | |
431 V(Float32Neg) \ | |
432 V(Float32Mul) \ | |
433 V(Float32Div) \ | |
434 V(Float32Abs) \ | |
435 V(Float32Sqrt) \ | |
436 V(Float32RoundDown) \ | |
437 V(Float32Max) \ | |
438 V(Float32Min) \ | |
439 V(Float64Add) \ | |
440 V(Float64Sub) \ | |
441 V(Float64Neg) \ | |
442 V(Float64Mul) \ | |
443 V(Float64Div) \ | |
444 V(Float64Mod) \ | |
445 V(Float64Max) \ | |
446 V(Float64Min) \ | |
447 V(Float64Abs) \ | |
448 V(Float64Acos) \ | |
449 V(Float64Acosh) \ | |
450 V(Float64Asin) \ | |
451 V(Float64Asinh) \ | |
452 V(Float64Atan) \ | |
453 V(Float64Atanh) \ | |
454 V(Float64Atan2) \ | |
455 V(Float64Cbrt) \ | |
456 V(Float64Cos) \ | |
457 V(Float64Cosh) \ | |
458 V(Float64Exp) \ | |
459 V(Float64Expm1) \ | |
460 V(Float64Log) \ | |
461 V(Float64Log1p) \ | |
462 V(Float64Log10) \ | |
463 V(Float64Log2) \ | |
464 V(Float64Pow) \ | |
465 V(Float64Sin) \ | |
466 V(Float64Sinh) \ | |
467 V(Float64Sqrt) \ | |
468 V(Float64Tan) \ | |
469 V(Float64Tanh) \ | |
470 V(Float64RoundDown) \ | |
471 V(Float32RoundUp) \ | |
472 V(Float64RoundUp) \ | |
473 V(Float32RoundTruncate) \ | |
474 V(Float64RoundTruncate) \ | |
475 V(Float64RoundTiesAway) \ | |
476 V(Float32RoundTiesEven) \ | |
477 V(Float64RoundTiesEven) \ | |
478 V(Float64ExtractLowWord32) \ | 499 V(Float64ExtractLowWord32) \ |
479 V(Float64ExtractHighWord32) \ | 500 V(Float64ExtractHighWord32) \ |
480 V(Float64InsertLowWord32) \ | 501 V(Float64InsertLowWord32) \ |
481 V(Float64InsertHighWord32) \ | 502 V(Float64InsertHighWord32) \ |
482 V(LoadStackPointer) \ | 503 V(LoadStackPointer) \ |
483 V(LoadFramePointer) \ | 504 V(LoadFramePointer) \ |
484 V(LoadParentFramePointer) \ | 505 V(LoadParentFramePointer) \ |
485 V(CheckedLoad) \ | 506 V(CheckedLoad) \ |
486 V(CheckedStore) \ | 507 V(CheckedStore) \ |
487 V(UnalignedLoad) \ | 508 V(UnalignedLoad) \ |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
761 } | 782 } |
762 }; | 783 }; |
763 | 784 |
764 std::ostream& operator<<(std::ostream&, IrOpcode::Value); | 785 std::ostream& operator<<(std::ostream&, IrOpcode::Value); |
765 | 786 |
766 } // namespace compiler | 787 } // namespace compiler |
767 } // namespace internal | 788 } // namespace internal |
768 } // namespace v8 | 789 } // namespace v8 |
769 | 790 |
770 #endif // V8_COMPILER_OPCODES_H_ | 791 #endif // V8_COMPILER_OPCODES_H_ |
OLD | NEW |