Chromium Code Reviews| 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/flags.h" | 8 #include "src/base/flags.h" |
| 9 #include "src/machine-type.h" | 9 #include "src/machine-type.h" |
| 10 | 10 |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 308 const OptionalOperator Float64RoundTiesAway(); | 308 const OptionalOperator Float64RoundTiesAway(); |
| 309 const OptionalOperator Float32RoundTiesEven(); | 309 const OptionalOperator Float32RoundTiesEven(); |
| 310 const OptionalOperator Float64RoundTiesEven(); | 310 const OptionalOperator Float64RoundTiesEven(); |
| 311 | 311 |
| 312 // Floating point bit representation. | 312 // Floating point bit representation. |
| 313 const Operator* Float64ExtractLowWord32(); | 313 const Operator* Float64ExtractLowWord32(); |
| 314 const Operator* Float64ExtractHighWord32(); | 314 const Operator* Float64ExtractHighWord32(); |
| 315 const Operator* Float64InsertLowWord32(); | 315 const Operator* Float64InsertLowWord32(); |
| 316 const Operator* Float64InsertHighWord32(); | 316 const Operator* Float64InsertHighWord32(); |
| 317 | 317 |
| 318 // SIMD operators. | |
|
Mircea Trofin
2016/03/31 21:36:04
To fit with the V8 current practice, consider repl
bbudge
2016/04/01 00:57:53
Done.
titzer
2016/04/01 09:30:10
Actually, Operator builders is one place where we
bbudge
2016/04/01 18:12:02
Done.
| |
| 319 | |
| 320 const Operator* CreateFloat32x4(); | |
| 321 // skip Float32x4Check | |
|
Mircea Trofin
2016/03/31 21:36:04
here and elsewhere, please add a TODO note in fron
bbudge
2016/04/01 00:57:52
These have been removed and listed in the issue de
| |
| 322 const Operator* Float32x4ExtractLane(); | |
| 323 const Operator* Float32x4ReplaceLane(); | |
| 324 const Operator* Float32x4Abs(); | |
| 325 const Operator* Float32x4Neg(); | |
| 326 const Operator* Float32x4Sqrt(); | |
| 327 const Operator* Float32x4RecipApprox(); | |
| 328 const Operator* Float32x4RecipSqrtApprox(); | |
| 329 const Operator* Float32x4Add(); | |
| 330 const Operator* Float32x4Sub(); | |
| 331 const Operator* Float32x4Mul(); | |
| 332 const Operator* Float32x4Div(); | |
| 333 const Operator* Float32x4Min(); | |
| 334 const Operator* Float32x4Max(); | |
| 335 const Operator* Float32x4MinNum(); | |
| 336 const Operator* Float32x4MaxNum(); | |
| 337 const Operator* Float32x4Equal(); | |
| 338 const Operator* Float32x4NotEqual(); | |
| 339 const Operator* Float32x4LessThan(); | |
| 340 const Operator* Float32x4LessThanOrEqual(); | |
| 341 const Operator* Float32x4GreaterThan(); | |
| 342 const Operator* Float32x4GreaterThanOrEqual(); | |
| 343 const Operator* Float32x4Select(); | |
| 344 const Operator* Float32x4Swizzle(); | |
| 345 const Operator* Float32x4Shuffle(); | |
| 346 const Operator* Float32x4FromInt32x4(); | |
| 347 const Operator* Float32x4FromUint32x4(); | |
| 348 // skip Float32x4FromInt32x4Bits | |
| 349 // skip Float32x4FromUint32x4Bits | |
| 350 // skip Float32x4FromInt16x8Bits | |
| 351 // skip Float32x4FromUint16x8Bits | |
| 352 // skip Float32x4FromInt8x16Bits | |
| 353 // skip Float32x4FromUint8x16Bits | |
| 354 // skip Float32x4Load | |
|
bradn
2016/03/31 21:20:48
I think we might want load/store as ops, until we
bbudge
2016/04/01 00:57:52
Acknowledged.
| |
| 355 const Operator* Float32x4Load1(); | |
| 356 const Operator* Float32x4Load2(); | |
| 357 const Operator* Float32x4Load3(); | |
| 358 // skip Float32x4Store | |
| 359 const Operator* Float32x4Store1(); | |
| 360 const Operator* Float32x4Store2(); | |
| 361 const Operator* Float32x4Store3(); | |
| 362 | |
| 363 const Operator* CreateInt32x4(); | |
| 364 // skip Int32x4Check | |
| 365 const Operator* Int32x4ExtractLane(); | |
| 366 const Operator* Int32x4ReplaceLane(); | |
| 367 const Operator* Int32x4Neg(); | |
| 368 const Operator* Int32x4Add(); | |
| 369 const Operator* Int32x4Sub(); | |
| 370 const Operator* Int32x4Mul(); | |
| 371 const Operator* Int32x4Min(); | |
| 372 const Operator* Int32x4Max(); | |
| 373 const Operator* Int32x4And(); | |
| 374 const Operator* Int32x4Or(); | |
| 375 const Operator* Int32x4Xor(); | |
| 376 const Operator* Int32x4Not(); | |
| 377 const Operator* Int32x4ShiftLeftByScalar(); | |
| 378 const Operator* Int32x4ShiftRightByScalar(); | |
| 379 const Operator* Int32x4Equal(); | |
| 380 const Operator* Int32x4NotEqual(); | |
| 381 const Operator* Int32x4LessThan(); | |
| 382 const Operator* Int32x4LessThanOrEqual(); | |
| 383 const Operator* Int32x4GreaterThan(); | |
| 384 const Operator* Int32x4GreaterThanOrEqual(); | |
| 385 const Operator* Int32x4Select(); | |
| 386 const Operator* Int32x4Swizzle(); | |
| 387 const Operator* Int32x4Shuffle(); | |
| 388 const Operator* Int32x4FromFloat32x4(); | |
| 389 // skip Int32x4FromUint32x4 | |
| 390 // skip Int32x4FromFloat32x4Bits | |
| 391 // skip Int32x4FromUint32x4Bits | |
| 392 // skip Int32x4FromInt16x8Bits | |
| 393 // skip Int32x4FromUint16x8Bits | |
| 394 // skip Int32x4FromInt8x16Bits | |
| 395 // skip Int32x4FromUint8x16Bits | |
| 396 // skip Int32x4Load | |
| 397 const Operator* Int32x4Load1(); | |
| 398 const Operator* Int32x4Load2(); | |
| 399 const Operator* Int32x4Load3(); | |
| 400 // skip Int32x4Store | |
| 401 const Operator* Int32x4Store1(); | |
| 402 const Operator* Int32x4Store2(); | |
| 403 const Operator* Int32x4Store3(); | |
| 404 | |
| 405 // skip CreateUint32x4 | |
| 406 // skip Uint32x4Check | |
| 407 // skip Uint32x4ExtractLane | |
| 408 // skip Uint32x4ReplaceLane | |
| 409 // skip Uint32x4Add | |
| 410 // skip Uint32x4Sub | |
| 411 // skip Uint32x4Mul | |
| 412 const Operator* Uint32x4Min(); | |
| 413 const Operator* Uint32x4Max(); | |
| 414 // skip Uint32x4And | |
| 415 // skip Uint32x4Or | |
| 416 // skip Uint32x4Xor | |
| 417 // skip Uint32x4Not | |
| 418 const Operator* Uint32x4ShiftLeftByScalar(); | |
| 419 const Operator* Uint32x4ShiftRightByScalar(); | |
| 420 // skip Uint32x4Equal | |
| 421 // skip Uint32x4NotEqual | |
| 422 const Operator* Uint32x4LessThan(); | |
| 423 const Operator* Uint32x4LessThanOrEqual(); | |
| 424 const Operator* Uint32x4GreaterThan(); | |
| 425 const Operator* Uint32x4GreaterThanOrEqual(); | |
| 426 // skip Uint32x4Select | |
| 427 // skip Uint32x4Swizzle | |
| 428 // skip Uint32x4Shuffle | |
| 429 const Operator* Uint32x4FromFloat32x4(); | |
| 430 // skip Uint32x4FromInt32x4 | |
| 431 // skip Uint32x4FromFloat32x4Bits | |
| 432 // skip Uint32x4FromInt32x4Bits | |
| 433 // skip Uint32x4FromInt16x8Bits | |
| 434 // skip Uint32x4FromUint16x8Bits | |
| 435 // skip Uint32x4FromInt8x16Bits | |
| 436 // skip Uint32x4FromUint8x16Bits | |
| 437 // skip Uint32x4Load | |
| 438 // skip Uint32x4Load1 | |
| 439 // skip Uint32x4Load2 | |
| 440 // skip Uint32x4Load3 | |
| 441 // skip Uint32x4Store | |
| 442 // skip Uint32x4Store1 | |
| 443 // skip Uint32x4Store2 | |
| 444 // skip Uint32x4Store3 | |
| 445 | |
| 446 const Operator* CreateBool32x4(); | |
| 447 // skip Bool32x4Check | |
| 448 const Operator* Bool32x4ExtractLane(); | |
| 449 const Operator* Bool32x4ReplaceLane(); | |
| 450 const Operator* Bool32x4And(); | |
| 451 const Operator* Bool32x4Or(); | |
| 452 const Operator* Bool32x4Xor(); | |
| 453 const Operator* Bool32x4Not(); | |
| 454 const Operator* Bool32x4AnyTrue(); | |
| 455 const Operator* Bool32x4AllTrue(); | |
| 456 const Operator* Bool32x4Swizzle(); | |
| 457 const Operator* Bool32x4Shuffle(); | |
| 458 const Operator* Bool32x4Equal(); | |
| 459 const Operator* Bool32x4NotEqual(); | |
| 460 | |
| 461 const Operator* CreateInt16x8(); | |
| 462 // skip Int16x8Check | |
| 463 const Operator* Int16x8ExtractLane(); | |
| 464 const Operator* Int16x8ReplaceLane(); | |
| 465 const Operator* Int16x8Neg(); | |
| 466 const Operator* Int16x8Add(); | |
| 467 const Operator* Int16x8AddSaturate(); | |
| 468 const Operator* Int16x8Sub(); | |
| 469 const Operator* Int16x8SubSaturate(); | |
| 470 const Operator* Int16x8Mul(); | |
| 471 const Operator* Int16x8Min(); | |
| 472 const Operator* Int16x8Max(); | |
| 473 const Operator* Int16x8And(); | |
| 474 const Operator* Int16x8Or(); | |
| 475 const Operator* Int16x8Xor(); | |
| 476 const Operator* Int16x8Not(); | |
| 477 const Operator* Int16x8ShiftLeftByScalar(); | |
| 478 const Operator* Int16x8ShiftRightByScalar(); | |
| 479 const Operator* Int16x8Equal(); | |
| 480 const Operator* Int16x8NotEqual(); | |
| 481 const Operator* Int16x8LessThan(); | |
| 482 const Operator* Int16x8LessThanOrEqual(); | |
| 483 const Operator* Int16x8GreaterThan(); | |
| 484 const Operator* Int16x8GreaterThanOrEqual(); | |
| 485 const Operator* Int16x8Select(); | |
| 486 const Operator* Int16x8Swizzle(); | |
| 487 const Operator* Int16x8Shuffle(); | |
| 488 // skip Int16x8FromUint16x8 | |
| 489 // skip Int16x8FromFloat32x4Bits | |
| 490 // skip Int16x8FromInt32x4Bits | |
| 491 // skip Int16x8FromUint32x4Bits | |
| 492 // skip Int16x8FromUint16x8Bits | |
| 493 // skip Int16x8FromInt8x16Bits | |
| 494 // skip Int16x8FromUint8x16Bits | |
| 495 // skip Int16x8Load | |
| 496 // skip Int16x8Store | |
| 497 | |
| 498 // skip CreateUint16x8 | |
| 499 // skip Uint16x8Check | |
| 500 // skip Uint16x8ExtractLane | |
| 501 // skip Uint16x8ReplaceLane | |
| 502 // skip Uint16x8Add | |
| 503 const Operator* Uint16x8AddSaturate(); | |
| 504 // skip Uint16x8Sub | |
| 505 const Operator* Uint16x8SubSaturate(); | |
| 506 // skip Uint16x8Mul | |
| 507 const Operator* Uint16x8Min(); | |
| 508 const Operator* Uint16x8Max(); | |
| 509 // skip Uint16x8And | |
| 510 // skip Uint16x8Or | |
| 511 // skip Uint16x8Xor | |
| 512 // skip Uint16x8Not | |
| 513 const Operator* Uint16x8ShiftLeftByScalar(); | |
| 514 const Operator* Uint16x8ShiftRightByScalar(); | |
| 515 // skip Uint16x8Equal | |
| 516 // skip Uint16x8NotEqual | |
| 517 const Operator* Uint16x8LessThan(); | |
| 518 const Operator* Uint16x8LessThanOrEqual(); | |
| 519 const Operator* Uint16x8GreaterThan(); | |
| 520 const Operator* Uint16x8GreaterThanOrEqual(); | |
| 521 // skip Uint16x8Select | |
| 522 // skip Uint16x8Swizzle | |
| 523 // skip Uint16x8Shuffle | |
| 524 // skip Uint16x8FromInt16x8 | |
| 525 // skip Uint16x8FromFloat32x4Bits | |
| 526 // skip Uint16x8FromInt32x4Bits | |
| 527 // skip Uint16x8FromUint32x4Bits | |
| 528 // skip Uint16x8FromInt16x8Bits | |
| 529 // skip Uint16x8FromInt8x16Bits | |
| 530 // skip Uint16x8FromUint8x16Bits | |
| 531 // skip Uint16x8Load | |
| 532 // skip Uint16x8Store | |
| 533 | |
| 534 const Operator* CreateBool16x8(); | |
| 535 // skip Bool16x8Check | |
| 536 const Operator* Bool16x8ExtractLane(); | |
| 537 const Operator* Bool16x8ReplaceLane(); | |
| 538 const Operator* Bool16x8And(); | |
| 539 const Operator* Bool16x8Or(); | |
| 540 const Operator* Bool16x8Xor(); | |
| 541 const Operator* Bool16x8Not(); | |
| 542 const Operator* Bool16x8AnyTrue(); | |
| 543 const Operator* Bool16x8AllTrue(); | |
| 544 const Operator* Bool16x8Swizzle(); | |
| 545 const Operator* Bool16x8Shuffle(); | |
| 546 const Operator* Bool16x8Equal(); | |
| 547 const Operator* Bool16x8NotEqual(); | |
| 548 | |
| 549 const Operator* CreateInt8x16(); | |
| 550 // skip Int8x16Check | |
| 551 const Operator* Int8x16ExtractLane(); | |
| 552 const Operator* Int8x16ReplaceLane(); | |
| 553 const Operator* Int8x16Neg(); | |
| 554 const Operator* Int8x16Add(); | |
| 555 const Operator* Int8x16AddSaturate(); | |
| 556 const Operator* Int8x16Sub(); | |
| 557 const Operator* Int8x16SubSaturate(); | |
| 558 const Operator* Int8x16Mul(); | |
| 559 const Operator* Int8x16Min(); | |
| 560 const Operator* Int8x16Max(); | |
| 561 const Operator* Int8x16And(); | |
| 562 const Operator* Int8x16Or(); | |
| 563 const Operator* Int8x16Xor(); | |
| 564 const Operator* Int8x16Not(); | |
| 565 const Operator* Int8x16ShiftLeftByScalar(); | |
| 566 const Operator* Int8x16ShiftRightByScalar(); | |
| 567 const Operator* Int8x16Equal(); | |
| 568 const Operator* Int8x16NotEqual(); | |
| 569 const Operator* Int8x16LessThan(); | |
| 570 const Operator* Int8x16LessThanOrEqual(); | |
| 571 const Operator* Int8x16GreaterThan(); | |
| 572 const Operator* Int8x16GreaterThanOrEqual(); | |
| 573 const Operator* Int8x16Select(); | |
| 574 const Operator* Int8x16Swizzle(); | |
| 575 const Operator* Int8x16Shuffle(); | |
| 576 // skip Int8x16FromUint8x16 | |
| 577 // skip Int8x16FromFloat32x4Bits | |
| 578 // skip Int8x16FromInt32x4Bits | |
| 579 // skip Int8x16FromUint32x4Bits | |
| 580 // skip Int8x16FromInt16x8Bits | |
| 581 // skip Int8x16FromUint16x8Bits | |
| 582 // skip Int8x16FromUint8x16Bits | |
| 583 // skip Int8x16Load | |
| 584 // skip Int8x16Store | |
| 585 | |
| 586 // skip CreateUint8x16 | |
| 587 // skip Uint8x16Check | |
| 588 // skip Uint8x16ExtractLane | |
| 589 // skip Uint8x16ReplaceLane | |
| 590 // skip Uint8x16Add | |
| 591 const Operator* Uint8x16AddSaturate(); | |
| 592 // skip Uint8x16Sub | |
| 593 const Operator* Uint8x16SubSaturate(); | |
| 594 // skip Uint8x16Mul | |
| 595 const Operator* Uint8x16Min(); | |
| 596 const Operator* Uint8x16Max(); | |
| 597 // skip Uint8x16And | |
| 598 // skip Uint8x16Or | |
| 599 // skip Uint8x16Xor | |
| 600 // skip Uint8x16Not | |
| 601 const Operator* Uint8x16ShiftLeftByScalar(); | |
| 602 const Operator* Uint8x16ShiftRightByScalar(); | |
| 603 // skip Uint8x16Equal | |
| 604 // skip Uint8x16NotEqual | |
| 605 const Operator* Uint8x16LessThan(); | |
| 606 const Operator* Uint8x16LessThanOrEqual(); | |
| 607 const Operator* Uint8x16GreaterThan(); | |
| 608 const Operator* Uint8x16GreaterThanOrEqual(); | |
| 609 // skip Uint8x16Select | |
| 610 // skip Uint8x16Swizzle | |
| 611 // skip Uint8x16Shuffle | |
| 612 // skip Uint8x16FromInt8x16 | |
| 613 // skip Uint8x16FromFloat32x4Bits | |
| 614 // skip Uint8x16FromInt32x4Bits | |
| 615 // skip Uint8x16FromUint32x4Bits | |
| 616 // skip Uint8x16FromInt16x8Bits | |
| 617 // skip Uint8x16FromUint16x8Bits | |
| 618 // skip Uint8x16FromInt8x16Bits | |
| 619 // skip Uint8x16Load | |
| 620 // skip Uint8x16Store | |
| 621 | |
| 622 const Operator* CreateBool8x16(); | |
| 623 // skip Bool8x16Check | |
| 624 const Operator* Bool8x16ExtractLane(); | |
| 625 const Operator* Bool8x16ReplaceLane(); | |
| 626 const Operator* Bool8x16And(); | |
| 627 const Operator* Bool8x16Or(); | |
| 628 const Operator* Bool8x16Xor(); | |
| 629 const Operator* Bool8x16Not(); | |
| 630 const Operator* Bool8x16AnyTrue(); | |
| 631 const Operator* Bool8x16AllTrue(); | |
| 632 const Operator* Bool8x16Swizzle(); | |
| 633 const Operator* Bool8x16Shuffle(); | |
| 634 const Operator* Bool8x16Equal(); | |
| 635 const Operator* Bool8x16NotEqual(); | |
| 636 | |
| 318 // load [base + index] | 637 // load [base + index] |
| 319 const Operator* Load(LoadRepresentation rep); | 638 const Operator* Load(LoadRepresentation rep); |
| 320 | 639 |
| 321 // store [base + index], value | 640 // store [base + index], value |
| 322 const Operator* Store(StoreRepresentation rep); | 641 const Operator* Store(StoreRepresentation rep); |
| 323 | 642 |
| 324 const Operator* StackSlot(MachineRepresentation rep); | 643 const Operator* StackSlot(MachineRepresentation rep); |
| 325 | 644 |
| 326 // Access to the machine stack. | 645 // Access to the machine stack. |
| 327 const Operator* LoadStackPointer(); | 646 const Operator* LoadStackPointer(); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 376 }; | 695 }; |
| 377 | 696 |
| 378 | 697 |
| 379 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) | 698 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) |
| 380 | 699 |
| 381 } // namespace compiler | 700 } // namespace compiler |
| 382 } // namespace internal | 701 } // namespace internal |
| 383 } // namespace v8 | 702 } // namespace v8 |
| 384 | 703 |
| 385 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ | 704 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ |
| OLD | NEW |