OLD | NEW |
1 #ifndef VP8_RTCD_H_ | 1 #ifndef VP8_RTCD_H_ |
2 #define VP8_RTCD_H_ | 2 #define VP8_RTCD_H_ |
3 | 3 |
4 #ifdef RTCD_C | 4 #ifdef RTCD_C |
5 #define RTCD_EXTERN | 5 #define RTCD_EXTERN |
6 #else | 6 #else |
7 #define RTCD_EXTERN extern | 7 #define RTCD_EXTERN extern |
8 #endif | 8 #endif |
9 | 9 |
10 #ifdef __cplusplus | 10 #ifdef __cplusplus |
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
483 #ifdef RTCD_C | 483 #ifdef RTCD_C |
484 #include "vpx_ports/x86.h" | 484 #include "vpx_ports/x86.h" |
485 static void setup_rtcd_internal(void) | 485 static void setup_rtcd_internal(void) |
486 { | 486 { |
487 int flags = x86_simd_caps(); | 487 int flags = x86_simd_caps(); |
488 | 488 |
489 (void)flags; | 489 (void)flags; |
490 | 490 |
491 vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_sse2; | 491 vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_sse2; |
492 if (flags & HAS_SSSE3) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16
_ssse3; | 492 if (flags & HAS_SSSE3) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16
_ssse3; |
493 | |
494 | |
495 | |
496 vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_sse2; | 493 vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_sse2; |
497 if (flags & HAS_SSSE3) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_sss
e3; | 494 if (flags & HAS_SSSE3) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_sss
e3; |
498 | |
499 | |
500 | |
501 | |
502 | |
503 vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_sse2; | 495 vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_sse2; |
504 if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_p
redictors_mbuv_s_ssse3; | 496 if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_p
redictors_mbuv_s_ssse3; |
505 | |
506 vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_sse2; | 497 vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_sse2; |
507 if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby_s = vp8_build_intra_pr
edictors_mby_s_ssse3; | 498 if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby_s = vp8_build_intra_pr
edictors_mby_s_ssse3; |
508 | |
509 | |
510 vp8_copy32xn = vp8_copy32xn_sse2; | 499 vp8_copy32xn = vp8_copy32xn_sse2; |
511 if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3; | 500 if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3; |
512 | |
513 | |
514 | |
515 | |
516 | |
517 | |
518 | |
519 | |
520 | |
521 | |
522 vp8_diamond_search_sad = vp8_diamond_search_sad_c; | 501 vp8_diamond_search_sad = vp8_diamond_search_sad_c; |
523 if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4; | 502 if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4; |
524 | |
525 vp8_fast_quantize_b = vp8_fast_quantize_b_sse2; | 503 vp8_fast_quantize_b = vp8_fast_quantize_b_sse2; |
526 if (flags & HAS_SSSE3) vp8_fast_quantize_b = vp8_fast_quantize_b_ssse3; | 504 if (flags & HAS_SSSE3) vp8_fast_quantize_b = vp8_fast_quantize_b_ssse3; |
527 | |
528 | |
529 | |
530 | |
531 | |
532 vp8_full_search_sad = vp8_full_search_sad_c; | 505 vp8_full_search_sad = vp8_full_search_sad_c; |
533 if (flags & HAS_SSE3) vp8_full_search_sad = vp8_full_search_sadx3; | 506 if (flags & HAS_SSE3) vp8_full_search_sad = vp8_full_search_sadx3; |
534 if (flags & HAS_SSE4_1) vp8_full_search_sad = vp8_full_search_sadx8; | 507 if (flags & HAS_SSE4_1) vp8_full_search_sad = vp8_full_search_sadx8; |
535 | |
536 | |
537 | |
538 | |
539 | |
540 | |
541 | |
542 | |
543 | |
544 | |
545 | |
546 | |
547 | |
548 | |
549 | |
550 | |
551 | |
552 | |
553 | |
554 | |
555 | |
556 | |
557 vp8_refining_search_sad = vp8_refining_search_sad_c; | 508 vp8_refining_search_sad = vp8_refining_search_sad_c; |
558 if (flags & HAS_SSE3) vp8_refining_search_sad = vp8_refining_search_sadx4; | 509 if (flags & HAS_SSE3) vp8_refining_search_sad = vp8_refining_search_sadx4; |
559 | |
560 | |
561 | |
562 vp8_sad16x16 = vp8_sad16x16_wmt; | 510 vp8_sad16x16 = vp8_sad16x16_wmt; |
563 if (flags & HAS_SSE3) vp8_sad16x16 = vp8_sad16x16_sse3; | 511 if (flags & HAS_SSE3) vp8_sad16x16 = vp8_sad16x16_sse3; |
564 | |
565 vp8_sad16x16x3 = vp8_sad16x16x3_c; | 512 vp8_sad16x16x3 = vp8_sad16x16x3_c; |
566 if (flags & HAS_SSE3) vp8_sad16x16x3 = vp8_sad16x16x3_sse3; | 513 if (flags & HAS_SSE3) vp8_sad16x16x3 = vp8_sad16x16x3_sse3; |
567 if (flags & HAS_SSSE3) vp8_sad16x16x3 = vp8_sad16x16x3_ssse3; | 514 if (flags & HAS_SSSE3) vp8_sad16x16x3 = vp8_sad16x16x3_ssse3; |
568 | |
569 vp8_sad16x16x4d = vp8_sad16x16x4d_c; | 515 vp8_sad16x16x4d = vp8_sad16x16x4d_c; |
570 if (flags & HAS_SSE3) vp8_sad16x16x4d = vp8_sad16x16x4d_sse3; | 516 if (flags & HAS_SSE3) vp8_sad16x16x4d = vp8_sad16x16x4d_sse3; |
571 | |
572 vp8_sad16x16x8 = vp8_sad16x16x8_c; | 517 vp8_sad16x16x8 = vp8_sad16x16x8_c; |
573 if (flags & HAS_SSE4_1) vp8_sad16x16x8 = vp8_sad16x16x8_sse4; | 518 if (flags & HAS_SSE4_1) vp8_sad16x16x8 = vp8_sad16x16x8_sse4; |
574 | |
575 | |
576 vp8_sad16x8x3 = vp8_sad16x8x3_c; | 519 vp8_sad16x8x3 = vp8_sad16x8x3_c; |
577 if (flags & HAS_SSE3) vp8_sad16x8x3 = vp8_sad16x8x3_sse3; | 520 if (flags & HAS_SSE3) vp8_sad16x8x3 = vp8_sad16x8x3_sse3; |
578 if (flags & HAS_SSSE3) vp8_sad16x8x3 = vp8_sad16x8x3_ssse3; | 521 if (flags & HAS_SSSE3) vp8_sad16x8x3 = vp8_sad16x8x3_ssse3; |
579 | |
580 vp8_sad16x8x4d = vp8_sad16x8x4d_c; | 522 vp8_sad16x8x4d = vp8_sad16x8x4d_c; |
581 if (flags & HAS_SSE3) vp8_sad16x8x4d = vp8_sad16x8x4d_sse3; | 523 if (flags & HAS_SSE3) vp8_sad16x8x4d = vp8_sad16x8x4d_sse3; |
582 | |
583 vp8_sad16x8x8 = vp8_sad16x8x8_c; | 524 vp8_sad16x8x8 = vp8_sad16x8x8_c; |
584 if (flags & HAS_SSE4_1) vp8_sad16x8x8 = vp8_sad16x8x8_sse4; | 525 if (flags & HAS_SSE4_1) vp8_sad16x8x8 = vp8_sad16x8x8_sse4; |
585 | |
586 | |
587 vp8_sad4x4x3 = vp8_sad4x4x3_c; | 526 vp8_sad4x4x3 = vp8_sad4x4x3_c; |
588 if (flags & HAS_SSE3) vp8_sad4x4x3 = vp8_sad4x4x3_sse3; | 527 if (flags & HAS_SSE3) vp8_sad4x4x3 = vp8_sad4x4x3_sse3; |
589 | |
590 vp8_sad4x4x4d = vp8_sad4x4x4d_c; | 528 vp8_sad4x4x4d = vp8_sad4x4x4d_c; |
591 if (flags & HAS_SSE3) vp8_sad4x4x4d = vp8_sad4x4x4d_sse3; | 529 if (flags & HAS_SSE3) vp8_sad4x4x4d = vp8_sad4x4x4d_sse3; |
592 | |
593 vp8_sad4x4x8 = vp8_sad4x4x8_c; | 530 vp8_sad4x4x8 = vp8_sad4x4x8_c; |
594 if (flags & HAS_SSE4_1) vp8_sad4x4x8 = vp8_sad4x4x8_sse4; | 531 if (flags & HAS_SSE4_1) vp8_sad4x4x8 = vp8_sad4x4x8_sse4; |
595 | |
596 | |
597 vp8_sad8x16x3 = vp8_sad8x16x3_c; | 532 vp8_sad8x16x3 = vp8_sad8x16x3_c; |
598 if (flags & HAS_SSE3) vp8_sad8x16x3 = vp8_sad8x16x3_sse3; | 533 if (flags & HAS_SSE3) vp8_sad8x16x3 = vp8_sad8x16x3_sse3; |
599 | |
600 vp8_sad8x16x4d = vp8_sad8x16x4d_c; | 534 vp8_sad8x16x4d = vp8_sad8x16x4d_c; |
601 if (flags & HAS_SSE3) vp8_sad8x16x4d = vp8_sad8x16x4d_sse3; | 535 if (flags & HAS_SSE3) vp8_sad8x16x4d = vp8_sad8x16x4d_sse3; |
602 | |
603 vp8_sad8x16x8 = vp8_sad8x16x8_c; | 536 vp8_sad8x16x8 = vp8_sad8x16x8_c; |
604 if (flags & HAS_SSE4_1) vp8_sad8x16x8 = vp8_sad8x16x8_sse4; | 537 if (flags & HAS_SSE4_1) vp8_sad8x16x8 = vp8_sad8x16x8_sse4; |
605 | |
606 | |
607 vp8_sad8x8x3 = vp8_sad8x8x3_c; | 538 vp8_sad8x8x3 = vp8_sad8x8x3_c; |
608 if (flags & HAS_SSE3) vp8_sad8x8x3 = vp8_sad8x8x3_sse3; | 539 if (flags & HAS_SSE3) vp8_sad8x8x3 = vp8_sad8x8x3_sse3; |
609 | |
610 vp8_sad8x8x4d = vp8_sad8x8x4d_c; | 540 vp8_sad8x8x4d = vp8_sad8x8x4d_c; |
611 if (flags & HAS_SSE3) vp8_sad8x8x4d = vp8_sad8x8x4d_sse3; | 541 if (flags & HAS_SSE3) vp8_sad8x8x4d = vp8_sad8x8x4d_sse3; |
612 | |
613 vp8_sad8x8x8 = vp8_sad8x8x8_c; | 542 vp8_sad8x8x8 = vp8_sad8x8x8_c; |
614 if (flags & HAS_SSE4_1) vp8_sad8x8x8 = vp8_sad8x8x8_sse4; | 543 if (flags & HAS_SSE4_1) vp8_sad8x8x8 = vp8_sad8x8x8_sse4; |
615 | |
616 | |
617 | |
618 | |
619 | |
620 | |
621 | |
622 vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2; | 544 vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2; |
623 if (flags & HAS_SSSE3) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sss
e3; | 545 if (flags & HAS_SSSE3) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sss
e3; |
624 | |
625 vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_mmx; | 546 vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_mmx; |
626 if (flags & HAS_SSSE3) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_ssse3; | 547 if (flags & HAS_SSSE3) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_ssse3; |
627 | |
628 vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_sse2; | 548 vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_sse2; |
629 if (flags & HAS_SSSE3) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_ssse3; | 549 if (flags & HAS_SSSE3) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_ssse3; |
630 | |
631 vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_sse2; | 550 vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_sse2; |
632 if (flags & HAS_SSSE3) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_ssse3; | 551 if (flags & HAS_SSSE3) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_ssse3; |
633 | |
634 | |
635 vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_wmt; | 552 vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_wmt; |
636 if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance1
6x16_ssse3; | 553 if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance1
6x16_ssse3; |
637 | |
638 vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_wmt; | 554 vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_wmt; |
639 if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16
x8_ssse3; | 555 if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16
x8_ssse3; |
640 } | 556 } |
641 #endif | 557 #endif |
642 | 558 |
643 #ifdef __cplusplus | 559 #ifdef __cplusplus |
644 } // extern "C" | 560 } // extern "C" |
645 #endif | 561 #endif |
646 | 562 |
647 #endif | 563 #endif |
OLD | NEW |