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_MACHINE_OPERATOR_H_ | 5 #ifndef V8_COMPILER_MACHINE_OPERATOR_H_ |
6 #define V8_COMPILER_MACHINE_OPERATOR_H_ | 6 #define V8_COMPILER_MACHINE_OPERATOR_H_ |
7 | 7 |
8 #include "src/base/compiler-specific.h" | 8 #include "src/base/compiler-specific.h" |
9 #include "src/base/flags.h" | 9 #include "src/base/flags.h" |
10 #include "src/globals.h" | 10 #include "src/globals.h" |
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
423 const Operator* Float64ExtractLowWord32(); | 423 const Operator* Float64ExtractLowWord32(); |
424 const Operator* Float64ExtractHighWord32(); | 424 const Operator* Float64ExtractHighWord32(); |
425 const Operator* Float64InsertLowWord32(); | 425 const Operator* Float64InsertLowWord32(); |
426 const Operator* Float64InsertHighWord32(); | 426 const Operator* Float64InsertHighWord32(); |
427 | 427 |
428 // Change signalling NaN to quiet NaN. | 428 // Change signalling NaN to quiet NaN. |
429 // Identity for any input that is not signalling NaN. | 429 // Identity for any input that is not signalling NaN. |
430 const Operator* Float64SilenceNaN(); | 430 const Operator* Float64SilenceNaN(); |
431 | 431 |
432 // SIMD operators. | 432 // SIMD operators. |
433 const Operator* Float32x4Splat(); | 433 const Operator* F32x4Splat(); |
434 const Operator* Float32x4ExtractLane(int32_t); | 434 const Operator* F32x4ExtractLane(int32_t); |
435 const Operator* Float32x4ReplaceLane(int32_t); | 435 const Operator* F32x4ReplaceLane(int32_t); |
436 const Operator* Float32x4Abs(); | 436 const Operator* F32x4SConvertI32x4(); |
437 const Operator* Float32x4Neg(); | 437 const Operator* F32x4UConvertI32x4(); |
438 const Operator* Float32x4Sqrt(); | 438 const Operator* F32x4Abs(); |
439 const Operator* Float32x4RecipApprox(); | 439 const Operator* F32x4Neg(); |
440 const Operator* Float32x4RecipSqrtApprox(); | 440 const Operator* F32x4Sqrt(); |
441 const Operator* Float32x4Add(); | 441 const Operator* F32x4RecipApprox(); |
442 const Operator* Float32x4Sub(); | 442 const Operator* F32x4RecipSqrtApprox(); |
443 const Operator* Float32x4Mul(); | 443 const Operator* F32x4Add(); |
444 const Operator* Float32x4Div(); | 444 const Operator* F32x4Sub(); |
445 const Operator* Float32x4Min(); | 445 const Operator* F32x4Mul(); |
446 const Operator* Float32x4Max(); | 446 const Operator* F32x4Div(); |
447 const Operator* Float32x4MinNum(); | 447 const Operator* F32x4Min(); |
448 const Operator* Float32x4MaxNum(); | 448 const Operator* F32x4Max(); |
449 const Operator* Float32x4RecipRefine(); | 449 const Operator* F32x4MinNum(); |
450 const Operator* Float32x4RecipSqrtRefine(); | 450 const Operator* F32x4MaxNum(); |
451 const Operator* Float32x4Equal(); | 451 const Operator* F32x4RecipRefine(); |
452 const Operator* Float32x4NotEqual(); | 452 const Operator* F32x4RecipSqrtRefine(); |
453 const Operator* Float32x4LessThan(); | 453 const Operator* F32x4Eq(); |
454 const Operator* Float32x4LessThanOrEqual(); | 454 const Operator* F32x4Ne(); |
455 const Operator* Float32x4FromInt32x4(); | 455 const Operator* F32x4Lt(); |
456 const Operator* Float32x4FromUint32x4(); | 456 const Operator* F32x4Le(); |
457 | 457 |
458 const Operator* Int32x4Splat(); | 458 const Operator* I32x4Splat(); |
459 const Operator* Int32x4ExtractLane(int32_t); | 459 const Operator* I32x4ExtractLane(int32_t); |
460 const Operator* Int32x4ReplaceLane(int32_t); | 460 const Operator* I32x4ReplaceLane(int32_t); |
461 const Operator* Int32x4Neg(); | 461 const Operator* I32x4SConvertF32x4(); |
462 const Operator* Int32x4Add(); | 462 const Operator* I32x4Neg(); |
463 const Operator* Int32x4Sub(); | 463 const Operator* I32x4Shl(int32_t); |
464 const Operator* Int32x4Mul(); | 464 const Operator* I32x4ShrS(int32_t); |
465 const Operator* Int32x4Min(); | 465 const Operator* I32x4Add(); |
466 const Operator* Int32x4Max(); | 466 const Operator* I32x4Sub(); |
467 const Operator* Int32x4ShiftLeftByScalar(int32_t); | 467 const Operator* I32x4Mul(); |
468 const Operator* Int32x4ShiftRightByScalar(int32_t); | 468 const Operator* I32x4MinS(); |
469 const Operator* Int32x4Equal(); | 469 const Operator* I32x4MaxS(); |
470 const Operator* Int32x4NotEqual(); | 470 const Operator* I32x4Eq(); |
471 const Operator* Int32x4LessThan(); | 471 const Operator* I32x4Ne(); |
472 const Operator* Int32x4LessThanOrEqual(); | 472 const Operator* I32x4LtS(); |
473 const Operator* Int32x4FromFloat32x4(); | 473 const Operator* I32x4LeS(); |
474 | 474 |
475 const Operator* Uint32x4Min(); | 475 const Operator* I32x4UConvertF32x4(); |
476 const Operator* Uint32x4Max(); | 476 const Operator* I32x4ShrU(int32_t); |
477 const Operator* Uint32x4ShiftRightByScalar(int32_t); | 477 const Operator* I32x4MinU(); |
478 const Operator* Uint32x4LessThan(); | 478 const Operator* I32x4MaxU(); |
479 const Operator* Uint32x4LessThanOrEqual(); | 479 const Operator* I32x4LtU(); |
480 const Operator* Uint32x4FromFloat32x4(); | 480 const Operator* I32x4LeU(); |
481 | 481 |
482 const Operator* Int16x8Splat(); | 482 const Operator* I16x8Splat(); |
483 const Operator* Int16x8ExtractLane(int32_t); | 483 const Operator* I16x8ExtractLane(int32_t); |
484 const Operator* Int16x8ReplaceLane(int32_t); | 484 const Operator* I16x8ReplaceLane(int32_t); |
485 const Operator* Int16x8Neg(); | 485 const Operator* I16x8Neg(); |
486 const Operator* Int16x8Add(); | 486 const Operator* I16x8Shl(int32_t); |
487 const Operator* Int16x8AddSaturate(); | 487 const Operator* I16x8ShrS(int32_t); |
488 const Operator* Int16x8Sub(); | 488 const Operator* I16x8Add(); |
489 const Operator* Int16x8SubSaturate(); | 489 const Operator* I16x8AddSaturate(); |
490 const Operator* Int16x8Mul(); | 490 const Operator* I16x8Sub(); |
491 const Operator* Int16x8Min(); | 491 const Operator* I16x8SubSaturate(); |
492 const Operator* Int16x8Max(); | 492 const Operator* I16x8Mul(); |
493 const Operator* Int16x8ShiftLeftByScalar(int32_t); | 493 const Operator* I16x8MinS(); |
494 const Operator* Int16x8ShiftRightByScalar(int32_t); | 494 const Operator* I16x8MaxS(); |
495 const Operator* Int16x8Equal(); | 495 const Operator* I16x8Eq(); |
496 const Operator* Int16x8NotEqual(); | 496 const Operator* I16x8Ne(); |
497 const Operator* Int16x8LessThan(); | 497 const Operator* I16x8LtS(); |
498 const Operator* Int16x8LessThanOrEqual(); | 498 const Operator* I16x8LeS(); |
499 | 499 |
500 const Operator* Uint16x8AddSaturate(); | 500 const Operator* I16x8ShrU(int32_t); |
501 const Operator* Uint16x8SubSaturate(); | 501 const Operator* I16x8AddSaturateU(); |
502 const Operator* Uint16x8Min(); | 502 const Operator* I16x8SubSaturateU(); |
503 const Operator* Uint16x8Max(); | 503 const Operator* I16x8MinU(); |
504 const Operator* Uint16x8ShiftRightByScalar(int32_t); | 504 const Operator* I16x8MaxU(); |
505 const Operator* Uint16x8LessThan(); | 505 const Operator* I16x8LtU(); |
506 const Operator* Uint16x8LessThanOrEqual(); | 506 const Operator* I16x8LeU(); |
507 | 507 |
508 const Operator* Int8x16Splat(); | 508 const Operator* I8x16Splat(); |
509 const Operator* Int8x16ExtractLane(int32_t); | 509 const Operator* I8x16ExtractLane(int32_t); |
510 const Operator* Int8x16ReplaceLane(int32_t); | 510 const Operator* I8x16ReplaceLane(int32_t); |
511 const Operator* Int8x16Neg(); | 511 const Operator* I8x16Neg(); |
512 const Operator* Int8x16Add(); | 512 const Operator* I8x16Shl(int32_t); |
513 const Operator* Int8x16AddSaturate(); | 513 const Operator* I8x16ShrS(int32_t); |
514 const Operator* Int8x16Sub(); | 514 const Operator* I8x16Add(); |
515 const Operator* Int8x16SubSaturate(); | 515 const Operator* I8x16AddSaturate(); |
516 const Operator* Int8x16Mul(); | 516 const Operator* I8x16Sub(); |
517 const Operator* Int8x16Min(); | 517 const Operator* I8x16SubSaturate(); |
518 const Operator* Int8x16Max(); | 518 const Operator* I8x16Mul(); |
519 const Operator* Int8x16ShiftLeftByScalar(int32_t); | 519 const Operator* I8x16MinS(); |
520 const Operator* Int8x16ShiftRightByScalar(int32_t); | 520 const Operator* I8x16MaxS(); |
521 const Operator* Int8x16Equal(); | 521 const Operator* I8x16Eq(); |
522 const Operator* Int8x16NotEqual(); | 522 const Operator* I8x16Ne(); |
523 const Operator* Int8x16LessThan(); | 523 const Operator* I8x16LtS(); |
524 const Operator* Int8x16LessThanOrEqual(); | 524 const Operator* I8x16LeS(); |
525 | 525 |
526 const Operator* Uint8x16AddSaturate(); | 526 const Operator* I8x16ShrU(int32_t); |
527 const Operator* Uint8x16SubSaturate(); | 527 const Operator* I8x16AddSaturateU(); |
528 const Operator* Uint8x16Min(); | 528 const Operator* I8x16SubSaturateU(); |
529 const Operator* Uint8x16Max(); | 529 const Operator* I8x16MinU(); |
530 const Operator* Uint8x16ShiftRightByScalar(int32_t); | 530 const Operator* I8x16MaxU(); |
531 const Operator* Uint8x16LessThan(); | 531 const Operator* I8x16LtU(); |
532 const Operator* Uint8x16LessThanOrEqual(); | 532 const Operator* I8x16LeU(); |
533 | 533 |
534 const Operator* Simd128Load(); | 534 const Operator* S128Load(); |
535 const Operator* Simd128Load1(); | 535 const Operator* S128Store(); |
536 const Operator* Simd128Load2(); | |
537 const Operator* Simd128Load3(); | |
538 const Operator* Simd128Store(); | |
539 const Operator* Simd128Store1(); | |
540 const Operator* Simd128Store2(); | |
541 const Operator* Simd128Store3(); | |
542 | 536 |
543 const Operator* Simd128Zero(); | 537 const Operator* S128Zero(); |
544 const Operator* Simd128And(); | 538 const Operator* S128And(); |
545 const Operator* Simd128Or(); | 539 const Operator* S128Or(); |
546 const Operator* Simd128Xor(); | 540 const Operator* S128Xor(); |
547 const Operator* Simd128Not(); | 541 const Operator* S128Not(); |
548 | 542 |
549 const Operator* Simd32x4Select(); | 543 const Operator* S32x4Select(); |
550 const Operator* Simd32x4Swizzle(uint32_t); | 544 const Operator* S32x4Swizzle(uint32_t); |
551 const Operator* Simd32x4Shuffle(); | 545 const Operator* S32x4Shuffle(); |
552 const Operator* Simd16x8Select(); | 546 const Operator* S16x8Select(); |
553 const Operator* Simd16x8Swizzle(uint32_t); | 547 const Operator* S16x8Swizzle(uint32_t); |
554 const Operator* Simd16x8Shuffle(); | 548 const Operator* S16x8Shuffle(); |
555 const Operator* Simd8x16Select(); | 549 const Operator* S8x16Select(); |
556 const Operator* Simd8x16Swizzle(uint32_t); | 550 const Operator* S8x16Swizzle(uint32_t); |
557 const Operator* Simd8x16Shuffle(); | 551 const Operator* S8x16Shuffle(); |
558 | 552 |
559 const Operator* Simd1x4Zero(); | 553 const Operator* S1x4Zero(); |
560 const Operator* Simd1x4And(); | 554 const Operator* S1x4And(); |
561 const Operator* Simd1x4Or(); | 555 const Operator* S1x4Or(); |
562 const Operator* Simd1x4Xor(); | 556 const Operator* S1x4Xor(); |
563 const Operator* Simd1x4Not(); | 557 const Operator* S1x4Not(); |
564 const Operator* Simd1x4AnyTrue(); | 558 const Operator* S1x4AnyTrue(); |
565 const Operator* Simd1x4AllTrue(); | 559 const Operator* S1x4AllTrue(); |
566 | 560 |
567 const Operator* Simd1x8Zero(); | 561 const Operator* S1x8Zero(); |
568 const Operator* Simd1x8And(); | 562 const Operator* S1x8And(); |
569 const Operator* Simd1x8Or(); | 563 const Operator* S1x8Or(); |
570 const Operator* Simd1x8Xor(); | 564 const Operator* S1x8Xor(); |
571 const Operator* Simd1x8Not(); | 565 const Operator* S1x8Not(); |
572 const Operator* Simd1x8AnyTrue(); | 566 const Operator* S1x8AnyTrue(); |
573 const Operator* Simd1x8AllTrue(); | 567 const Operator* S1x8AllTrue(); |
574 | 568 |
575 const Operator* Simd1x16Zero(); | 569 const Operator* S1x16Zero(); |
576 const Operator* Simd1x16And(); | 570 const Operator* S1x16And(); |
577 const Operator* Simd1x16Or(); | 571 const Operator* S1x16Or(); |
578 const Operator* Simd1x16Xor(); | 572 const Operator* S1x16Xor(); |
579 const Operator* Simd1x16Not(); | 573 const Operator* S1x16Not(); |
580 const Operator* Simd1x16AnyTrue(); | 574 const Operator* S1x16AnyTrue(); |
581 const Operator* Simd1x16AllTrue(); | 575 const Operator* S1x16AllTrue(); |
582 | 576 |
583 // load [base + index] | 577 // load [base + index] |
584 const Operator* Load(LoadRepresentation rep); | 578 const Operator* Load(LoadRepresentation rep); |
585 const Operator* ProtectedLoad(LoadRepresentation rep); | 579 const Operator* ProtectedLoad(LoadRepresentation rep); |
586 | 580 |
587 // store [base + index], value | 581 // store [base + index], value |
588 const Operator* Store(StoreRepresentation rep); | 582 const Operator* Store(StoreRepresentation rep); |
589 const Operator* ProtectedStore(MachineRepresentation rep); | 583 const Operator* ProtectedStore(MachineRepresentation rep); |
590 | 584 |
591 // unaligned load [base + index] | 585 // unaligned load [base + index] |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
674 }; | 668 }; |
675 | 669 |
676 | 670 |
677 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) | 671 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) |
678 | 672 |
679 } // namespace compiler | 673 } // namespace compiler |
680 } // namespace internal | 674 } // namespace internal |
681 } // namespace v8 | 675 } // namespace v8 |
682 | 676 |
683 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ | 677 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ |
OLD | NEW |