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 |