This simplifies the structure for all x86 assembly functions, reducing the amount of duplicated code structure.
Showing the changes to codec/processing/src (3 of 21 files). Show all
Unified · Split
| @@ -163,8 +163,6 @@ SECTION .text · 162 unmodified lines | |||
| 163 | paddw %3, %2 | 163 | paddw %3, %2 |
| 164 | %endmacro | 164 | %endmacro |
| 165 | 165 | ||
| 166 | ALIGN 16 | ||
| 167 | WELS_EXTERN BilateralLumaFilter8_sse2 | ||
| 168 | ;*********************************************************************** | 166 | ;*********************************************************************** |
| 169 | ; BilateralLumaFilter8_sse2(uint8_t *pixels, int stride); | 167 | ; BilateralLumaFilter8_sse2(uint8_t *pixels, int stride); |
| 170 | ;*********************************************************************** | 168 | ;*********************************************************************** |
| @@ -173,7 +171,7 @@ WELS_EXTERN BilateralLumaFilter8_sse2 · 2 unmodified lines | |||
| 173 | ; 6 7 8 | 171 | ; 6 7 8 |
| 174 | ; 0: the center point | 172 | ; 0: the center point |
| 175 | 173 | ||
| 176 | BilateralLumaFilter8_sse2: | 174 | WELS_EXTERN BilateralLumaFilter8_sse2 |
| 177 | 175 | ||
| 178 | push r3 | 176 | push r3 |
| 179 | %assign push_num 1 | 177 | %assign push_num 1 |
| @@ -219,7 +217,6 @@ BilateralLumaFilter8_sse2: · 39 unmodified lines | |||
| 219 | 217 | ||
| 220 | ret | 218 | ret |
| 221 | 219 | ||
| 222 | WELS_EXTERN WaverageChromaFilter8_sse2 | ||
| 223 | ;*********************************************************************** | 220 | ;*********************************************************************** |
| 224 | ; void WaverageChromaFilter8_sse2(uint8_t *pixels, int stride); | 221 | ; void WaverageChromaFilter8_sse2(uint8_t *pixels, int stride); |
| 225 | ;*********************************************************************** | 222 | ;*********************************************************************** |
| @@ -230,8 +227,7 @@ WELS_EXTERN WaverageChromaFilter8_sse2 · 4 unmodified lines | |||
| 230 | ;1 2 4 2 1 | 227 | ;1 2 4 2 1 |
| 231 | ;1 1 2 1 1 | 228 | ;1 1 2 1 1 |
| 232 | 229 | ||
| 233 | ALIGN 16 | 230 | WELS_EXTERN WaverageChromaFilter8_sse2 |
| 234 | WaverageChromaFilter8_sse2: | ||
| 235 | 231 | ||
| 236 | push r3 | 232 | push r3 |
| 237 | 233 | ||
| @@ -66,22 +66,18 @@ shufb_mask_high: · 65 unmodified lines | |||
| 66 | db 01h, 80h, 03h, 80h, 05h, 80h, 07h, 80h, 09h, 80h, 0bh, 80h, 0dh, 80h, 0fh, 80h | 66 | db 01h, 80h, 03h, 80h, 05h, 80h, 07h, 80h, 09h, 80h, 0bh, 80h, 0dh, 80h, 0fh, 80h |
| 67 | 67 | ||
| 68 | 68 | ||
| 69 | ALIGN 16 | ||
| 70 | |||
| 71 | ;*********************************************************************** | 69 | ;*********************************************************************** |
| 72 | ; Code | 70 | ; Code |
| 73 | ;*********************************************************************** | 71 | ;*********************************************************************** |
| 74 | 72 | ||
| 75 | SECTION .text | 73 | SECTION .text |
| 76 | 74 | ||
| 77 | WELS_EXTERN DyadicBilinearDownsamplerWidthx32_sse | ||
| 78 | ;*********************************************************************** | 75 | ;*********************************************************************** |
| 79 | ; void DyadicBilinearDownsamplerWidthx32_sse( unsigned char* pDst, const int iDstStride, | 76 | ; void DyadicBilinearDownsamplerWidthx32_sse( unsigned char* pDst, const int iDstStride, |
| 80 | ; unsigned char* pSrc, const int iSrcStride, | 77 | ; unsigned char* pSrc, const int iSrcStride, |
| 81 | ; const int iSrcWidth, const int iSrcHeight ); | 78 | ; const int iSrcWidth, const int iSrcHeight ); |
| 82 | ;*********************************************************************** | 79 | ;*********************************************************************** |
| 83 | ALIGN 16 | 80 | WELS_EXTERN DyadicBilinearDownsamplerWidthx32_sse |
| 84 | DyadicBilinearDownsamplerWidthx32_sse: | ||
| 85 | push ebx | 81 | push ebx |
| 86 | push edx | 82 | push edx |
| 87 | push esi | 83 | push esi |
| @@ -227,14 +223,12 @@ DyadicBilinearDownsamplerWidthx32_sse: · 139 unmodified lines | |||
| 227 | pop ebx | 223 | pop ebx |
| 228 | ret | 224 | ret |
| 229 | 225 | ||
| 230 | WELS_EXTERN DyadicBilinearDownsamplerWidthx16_sse | ||
| 231 | ;*********************************************************************** | 226 | ;*********************************************************************** |
| 232 | ; void DyadicBilinearDownsamplerWidthx16_sse( unsigned char* pDst, const int iDstStride, | 227 | ; void DyadicBilinearDownsamplerWidthx16_sse( unsigned char* pDst, const int iDstStride, |
| 233 | ; unsigned char* pSrc, const int iSrcStride, | 228 | ; unsigned char* pSrc, const int iSrcStride, |
| 234 | ; const int iSrcWidth, const int iSrcHeight ); | 229 | ; const int iSrcWidth, const int iSrcHeight ); |
| 235 | ;*********************************************************************** | 230 | ;*********************************************************************** |
| 236 | ALIGN 16 | 231 | WELS_EXTERN DyadicBilinearDownsamplerWidthx16_sse |
| 237 | DyadicBilinearDownsamplerWidthx16_sse: | ||
| 238 | push ebx | 232 | push ebx |
| 239 | push edx | 233 | push edx |
| 240 | push esi | 234 | push esi |
| @@ -331,14 +325,12 @@ DyadicBilinearDownsamplerWidthx16_sse: · 90 unmodified lines | |||
| 331 | pop ebx | 325 | pop ebx |
| 332 | ret | 326 | ret |
| 333 | 327 | ||
| 334 | WELS_EXTERN DyadicBilinearDownsamplerWidthx8_sse | ||
| 335 | ;*********************************************************************** | 328 | ;*********************************************************************** |
| 336 | ; void DyadicBilinearDownsamplerWidthx8_sse( unsigned char* pDst, const int iDstStride, | 329 | ; void DyadicBilinearDownsamplerWidthx8_sse( unsigned char* pDst, const int iDstStride, |
| 337 | ; unsigned char* pSrc, const int iSrcStride, | 330 | ; unsigned char* pSrc, const int iSrcStride, |
| 338 | ; const int iSrcWidth, const int iSrcHeight ); | 331 | ; const int iSrcWidth, const int iSrcHeight ); |
| 339 | ;*********************************************************************** | 332 | ;*********************************************************************** |
| 340 | ALIGN 16 | 333 | WELS_EXTERN DyadicBilinearDownsamplerWidthx8_sse |
| 341 | DyadicBilinearDownsamplerWidthx8_sse: | ||
| 342 | push ebx | 334 | push ebx |
| 343 | push edx | 335 | push edx |
| 344 | push esi | 336 | push esi |
| @@ -422,14 +414,12 @@ DyadicBilinearDownsamplerWidthx8_sse: · 77 unmodified lines | |||
| 422 | 414 | ||
| 423 | 415 | ||
| 424 | ; got about 50% improvement over DyadicBilinearDownsamplerWidthx32_sse | 416 | ; got about 50% improvement over DyadicBilinearDownsamplerWidthx32_sse |
| 425 | WELS_EXTERN DyadicBilinearDownsamplerWidthx32_ssse3 | ||
| 426 | ;*********************************************************************** | 417 | ;*********************************************************************** |
| 427 | ; void DyadicBilinearDownsamplerWidthx32_ssse3( unsigned char* pDst, const int iDstStride, | 418 | ; void DyadicBilinearDownsamplerWidthx32_ssse3( unsigned char* pDst, const int iDstStride, |
| 428 | ; unsigned char* pSrc, const int iSrcStride, | 419 | ; unsigned char* pSrc, const int iSrcStride, |
| 429 | ; const int iSrcWidth, const int iSrcHeight ); | 420 | ; const int iSrcWidth, const int iSrcHeight ); |
| 430 | ;*********************************************************************** | 421 | ;*********************************************************************** |
| 431 | ALIGN 16 | 422 | WELS_EXTERN DyadicBilinearDownsamplerWidthx32_ssse3 |
| 432 | DyadicBilinearDownsamplerWidthx32_ssse3: | ||
| 433 | push ebx | 423 | push ebx |
| 434 | push edx | 424 | push edx |
| 435 | push esi | 425 | push esi |
| @@ -533,14 +523,12 @@ DyadicBilinearDownsamplerWidthx32_ssse3: · 97 unmodified lines | |||
| 533 | pop ebx | 523 | pop ebx |
| 534 | ret | 524 | ret |
| 535 | 525 | ||
| 536 | WELS_EXTERN DyadicBilinearDownsamplerWidthx16_ssse3 | ||
| 537 | ;*********************************************************************** | 526 | ;*********************************************************************** |
| 538 | ; void DyadicBilinearDownsamplerWidthx16_ssse3( unsigned char* pDst, const int iDstStride, | 527 | ; void DyadicBilinearDownsamplerWidthx16_ssse3( unsigned char* pDst, const int iDstStride, |
| 539 | ; unsigned char* pSrc, const int iSrcStride, | 528 | ; unsigned char* pSrc, const int iSrcStride, |
| 540 | ; const int iSrcWidth, const int iSrcHeight ); | 529 | ; const int iSrcWidth, const int iSrcHeight ); |
| 541 | ;*********************************************************************** | 530 | ;*********************************************************************** |
| 542 | ALIGN 16 | 531 | WELS_EXTERN DyadicBilinearDownsamplerWidthx16_ssse3 |
| 543 | DyadicBilinearDownsamplerWidthx16_ssse3: | ||
| 544 | push ebx | 532 | push ebx |
| 545 | push edx | 533 | push edx |
| 546 | push esi | 534 | push esi |
| @@ -623,14 +611,12 @@ DyadicBilinearDownsamplerWidthx16_ssse3: · 76 unmodified lines | |||
| 623 | ret | 611 | ret |
| 624 | 612 | ||
| 625 | ; got about 65% improvement over DyadicBilinearDownsamplerWidthx32_sse | 613 | ; got about 65% improvement over DyadicBilinearDownsamplerWidthx32_sse |
| 626 | WELS_EXTERN DyadicBilinearDownsamplerWidthx32_sse4 | ||
| 627 | ;*********************************************************************** | 614 | ;*********************************************************************** |
| 628 | ; void DyadicBilinearDownsamplerWidthx32_sse4( unsigned char* pDst, const int iDstStride, | 615 | ; void DyadicBilinearDownsamplerWidthx32_sse4( unsigned char* pDst, const int iDstStride, |
| 629 | ; unsigned char* pSrc, const int iSrcStride, | 616 | ; unsigned char* pSrc, const int iSrcStride, |
| 630 | ; const int iSrcWidth, const int iSrcHeight ); | 617 | ; const int iSrcWidth, const int iSrcHeight ); |
| 631 | ;*********************************************************************** | 618 | ;*********************************************************************** |
| 632 | ALIGN 16 | 619 | WELS_EXTERN DyadicBilinearDownsamplerWidthx32_sse4 |
| 633 | DyadicBilinearDownsamplerWidthx32_sse4: | ||
| 634 | push ebx | 620 | push ebx |
| 635 | push edx | 621 | push edx |
| 636 | push esi | 622 | push esi |
| @@ -733,14 +719,12 @@ DyadicBilinearDownsamplerWidthx32_sse4: · 96 unmodified lines | |||
| 733 | pop ebx | 719 | pop ebx |
| 734 | ret | 720 | ret |
| 735 | 721 | ||
| 736 | WELS_EXTERN DyadicBilinearDownsamplerWidthx16_sse4 | ||
| 737 | ;*********************************************************************** | 722 | ;*********************************************************************** |
| 738 | ; void DyadicBilinearDownsamplerWidthx16_sse4( unsigned char* pDst, const int iDstStride, | 723 | ; void DyadicBilinearDownsamplerWidthx16_sse4( unsigned char* pDst, const int iDstStride, |
| 739 | ; unsigned char* pSrc, const int iSrcStride, | 724 | ; unsigned char* pSrc, const int iSrcStride, |
| 740 | ; const int iSrcWidth, const int iSrcHeight ); | 725 | ; const int iSrcWidth, const int iSrcHeight ); |
| 741 | ;*********************************************************************** | 726 | ;*********************************************************************** |
| 742 | ALIGN 16 | 727 | WELS_EXTERN DyadicBilinearDownsamplerWidthx16_sse4 |
| 743 | DyadicBilinearDownsamplerWidthx16_sse4: | ||
| 744 | push ebx | 728 | push ebx |
| 745 | push edx | 729 | push edx |
| 746 | push esi | 730 | push esi |
| @@ -825,7 +809,6 @@ DyadicBilinearDownsamplerWidthx16_sse4: · 78 unmodified lines | |||
| 825 | 809 | ||
| 826 | 810 | ||
| 827 | 811 | ||
| 828 | WELS_EXTERN GeneralBilinearAccurateDownsampler_sse2 | ||
| 829 | ;************************************************************************************************************** | 812 | ;************************************************************************************************************** |
| 830 | ;int GeneralBilinearAccurateDownsampler_sse2( unsigned char* pDst, const int iDstStride, const int iDstWidth, const int iDstHeight, | 813 | ;int GeneralBilinearAccurateDownsampler_sse2( unsigned char* pDst, const int iDstStride, const int iDstWidth, const int iDstHeight, |
| 831 | ; unsigned char* pSrc, const int iSrcStride, const int iSrcWidth, const int iSrcHeight, | 814 | ; unsigned char* pSrc, const int iSrcStride, const int iSrcWidth, const int iSrcHeight, |
| @@ -833,8 +816,7 @@ WELS_EXTERN GeneralBilinearAccurateDownsampler_sse2 · 1 unmodified line | |||
| 833 | ;{ | 816 | ;{ |
| 834 | ;************************************************************************************************************** | 817 | ;************************************************************************************************************** |
| 835 | 818 | ||
| 836 | ALIGN 16 | 819 | WELS_EXTERN GeneralBilinearAccurateDownsampler_sse2 |
| 837 | GeneralBilinearAccurateDownsampler_sse2: | ||
| 838 | push ebp | 820 | push ebp |
| 839 | push esi | 821 | push esi |
| 840 | push edi | 822 | push edi |
| @@ -1029,7 +1011,6 @@ LAST_ROW_END: · 188 unmodified lines | |||
| 1029 | 1011 | ||
| 1030 | 1012 | ||
| 1031 | 1013 | ||
| 1032 | WELS_EXTERN GeneralBilinearFastDownsampler_sse2 | ||
| 1033 | ;************************************************************************************************************** | 1014 | ;************************************************************************************************************** |
| 1034 | ;int GeneralBilinearFastDownsampler_sse2( unsigned char* pDst, const int iDstStride, const int iDstWidth, const int iDstHeight, | 1015 | ;int GeneralBilinearFastDownsampler_sse2( unsigned char* pDst, const int iDstStride, const int iDstWidth, const int iDstHeight, |
| 1035 | ; unsigned char* pSrc, const int iSrcStride, const int iSrcWidth, const int iSrcHeight, | 1016 | ; unsigned char* pSrc, const int iSrcStride, const int iSrcWidth, const int iSrcHeight, |
| @@ -1037,8 +1018,7 @@ WELS_EXTERN GeneralBilinearFastDownsampler_sse2 · 1 unmodified line | |||
| 1037 | ;{ | 1018 | ;{ |
| 1038 | ;************************************************************************************************************** | 1019 | ;************************************************************************************************************** |
| 1039 | 1020 | ||
| 1040 | ALIGN 16 | 1021 | WELS_EXTERN GeneralBilinearFastDownsampler_sse2 |
| 1041 | GeneralBilinearFastDownsampler_sse2: | ||
| 1042 | push ebp | 1022 | push ebp |
| 1043 | push esi | 1023 | push esi |
| 1044 | push edi | 1024 | push edi |
| @@ -255,12 +255,10 @@ SECTION .text · 254 unmodified lines | |||
| 255 | 255 | ||
| 256 | %ifdef X86_32 | 256 | %ifdef X86_32 |
| 257 | 257 | ||
| 258 | WELS_EXTERN SampleVariance16x16_sse2 | ||
| 259 | ;*********************************************************************** | 258 | ;*********************************************************************** |
| 260 | ; void SampleVariance16x16_sse2( uint8_t * y_ref, int32_t y_ref_stride, uint8_t * y_src, int32_t y_src_stride,SMotionTextureUnit* pMotionTexture ); | 259 | ; void SampleVariance16x16_sse2( uint8_t * y_ref, int32_t y_ref_stride, uint8_t * y_src, int32_t y_src_stride,SMotionTextureUnit* pMotionTexture ); |
| 261 | ;*********************************************************************** | 260 | ;*********************************************************************** |
| 262 | ALIGN 16 | 261 | WELS_EXTERN SampleVariance16x16_sse2 |
| 263 | SampleVariance16x16_sse2: | ||
| 264 | push esi | 262 | push esi |
| 265 | push edi | 263 | push edi |
| 266 | push ebx | 264 | push ebx |
| @@ -357,15 +355,13 @@ SampleVariance16x16_sse2: · 90 unmodified lines | |||
| 357 | 355 | ||
| 358 | 356 | ||
| 359 | 357 | ||
| 360 | WELS_EXTERN VAACalcSad_sse2 | ||
| 361 | ;************************************************************************************************************* | 358 | ;************************************************************************************************************* |
| 362 | ;void VAACalcSad_sse2( const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight | 359 | ;void VAACalcSad_sse2( const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight |
| 363 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8) | 360 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8) |
| 364 | ;************************************************************************************************************* | 361 | ;************************************************************************************************************* |
| 365 | 362 | ||
| 366 | 363 | ||
| 367 | ALIGN 16 | 364 | WELS_EXTERN VAACalcSad_sse2 |
| 368 | VAACalcSad_sse2: | ||
| 369 | %define cur_data esp + pushsize + 4 | 365 | %define cur_data esp + pushsize + 4 |
| 370 | %define ref_data esp + pushsize + 8 | 366 | %define ref_data esp + pushsize + 8 |
| 371 | %define iPicWidth esp + pushsize + 12 | 367 | %define iPicWidth esp + pushsize + 12 |
| @@ -451,12 +447,10 @@ width_loop: · 79 unmodified lines | |||
| 451 | 447 | ||
| 452 | %else ;64-bit | 448 | %else ;64-bit |
| 453 | 449 | ||
| 454 | WELS_EXTERN SampleVariance16x16_sse2 | ||
| 455 | ;*********************************************************************** | 450 | ;*********************************************************************** |
| 456 | ; void SampleVariance16x16_sse2( uint8_t * y_ref, int32_t y_ref_stride, uint8_t * y_src, int32_t y_src_stride,SMotionTextureUnit* pMotionTexture ); | 451 | ; void SampleVariance16x16_sse2( uint8_t * y_ref, int32_t y_ref_stride, uint8_t * y_src, int32_t y_src_stride,SMotionTextureUnit* pMotionTexture ); |
| 457 | ;*********************************************************************** | 452 | ;*********************************************************************** |
| 458 | ALIGN 16 | 453 | WELS_EXTERN SampleVariance16x16_sse2 |
| 459 | SampleVariance16x16_sse2: | ||
| 460 | %define SUM r10;[esp] | 454 | %define SUM r10;[esp] |
| 461 | %define SUM_CUR r11;[esp+4] | 455 | %define SUM_CUR r11;[esp+4] |
| 462 | %define SQR r13;[esp+8] | 456 | %define SQR r13;[esp+8] |
| @@ -549,15 +543,13 @@ SampleVariance16x16_sse2: · 86 unmodified lines | |||
| 549 | ret | 543 | ret |
| 550 | 544 | ||
| 551 | 545 | ||
| 552 | WELS_EXTERN VAACalcSad_sse2 | ||
| 553 | ;************************************************************************************************************* | 546 | ;************************************************************************************************************* |
| 554 | ;void VAACalcSad_sse2( const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight | 547 | ;void VAACalcSad_sse2( const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight |
| 555 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8) | 548 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8) |
| 556 | ;************************************************************************************************************* | 549 | ;************************************************************************************************************* |
| 557 | 550 | ||
| 558 | 551 | ||
| 559 | ALIGN 16 | 552 | WELS_EXTERN VAACalcSad_sse2 |
| 560 | VAACalcSad_sse2: | ||
| 561 | %define cur_data r0 | 553 | %define cur_data r0 |
| 562 | %define ref_data r1 | 554 | %define ref_data r1 |
| 563 | %define iPicWidth r2 | 555 | %define iPicWidth r2 |
| @@ -647,15 +639,13 @@ width_loop: · 83 unmodified lines | |||
| 647 | 639 | ||
| 648 | 640 | ||
| 649 | %ifdef X86_32 | 641 | %ifdef X86_32 |
| 650 | WELS_EXTERN VAACalcSadVar_sse2 | ||
| 651 | ;************************************************************************************************************* | 642 | ;************************************************************************************************************* |
| 652 | ;void VAACalcSadVar_sse2( const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight | 643 | ;void VAACalcSadVar_sse2( const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight |
| 653 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16) | 644 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16) |
| 654 | ;************************************************************************************************************* | 645 | ;************************************************************************************************************* |
| 655 | 646 | ||
| 656 | 647 | ||
| 657 | ALIGN 16 | 648 | WELS_EXTERN VAACalcSadVar_sse2 |
| 658 | VAACalcSadVar_sse2: | ||
| 659 | %define localsize 8 | 649 | %define localsize 8 |
| 660 | %define cur_data esp + pushsize + localsize + 4 | 650 | %define cur_data esp + pushsize + localsize + 4 |
| 661 | %define ref_data esp + pushsize + localsize + 8 | 651 | %define ref_data esp + pushsize + localsize + 8 |
| @@ -783,15 +773,13 @@ var_width_loop: · 121 unmodified lines | |||
| 783 | 773 | ||
| 784 | %else ;64-bit | 774 | %else ;64-bit |
| 785 | 775 | ||
| 786 | WELS_EXTERN VAACalcSadVar_sse2 | ||
| 787 | ;************************************************************************************************************* | 776 | ;************************************************************************************************************* |
| 788 | ;void VAACalcSadVar_sse2( const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight | 777 | ;void VAACalcSadVar_sse2( const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight |
| 789 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16) | 778 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16) |
| 790 | ;************************************************************************************************************* | 779 | ;************************************************************************************************************* |
| 791 | 780 | ||
| 792 | 781 | ||
| 793 | ALIGN 16 | 782 | WELS_EXTERN VAACalcSadVar_sse2 |
| 794 | VAACalcSadVar_sse2: | ||
| 795 | %define cur_data arg1 ;r0 | 783 | %define cur_data arg1 ;r0 |
| 796 | %define ref_data arg2 ;r1 | 784 | %define ref_data arg2 ;r1 |
| 797 | %define iPicWidth arg3 ;r2 | 785 | %define iPicWidth arg3 ;r2 |
| @@ -926,15 +914,13 @@ var_width_loop: · 128 unmodified lines | |||
| 926 | 914 | ||
| 927 | %ifdef X86_32 | 915 | %ifdef X86_32 |
| 928 | 916 | ||
| 929 | WELS_EXTERN VAACalcSadSsd_sse2 | ||
| 930 | ;************************************************************************************************************* | 917 | ;************************************************************************************************************* |
| 931 | ;void VAACalcSadSsd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight, | 918 | ;void VAACalcSadSsd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight, |
| 932 | ; int32_t iPicStride,int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16, int32_t *psqdiff16x16) | 919 | ; int32_t iPicStride,int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16, int32_t *psqdiff16x16) |
| 933 | ;************************************************************************************************************* | 920 | ;************************************************************************************************************* |
| 934 | 921 | ||
| 935 | 922 | ||
| 936 | ALIGN 16 | 923 | WELS_EXTERN VAACalcSadSsd_sse2 |
| 937 | VAACalcSadSsd_sse2: | ||
| 938 | %define localsize 12 | 924 | %define localsize 12 |
| 939 | %define cur_data esp + pushsize + localsize + 4 | 925 | %define cur_data esp + pushsize + localsize + 4 |
| 940 | %define ref_data esp + pushsize + localsize + 8 | 926 | %define ref_data esp + pushsize + localsize + 8 |
| @@ -1082,15 +1068,13 @@ sqdiff_width_loop: · 141 unmodified lines | |||
| 1082 | %else | 1068 | %else |
| 1083 | 1069 | ||
| 1084 | 1070 | ||
| 1085 | WELS_EXTERN VAACalcSadSsd_sse2 | ||
| 1086 | ;************************************************************************************************************* | 1071 | ;************************************************************************************************************* |
| 1087 | ;void VAACalcSadSsd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight, | 1072 | ;void VAACalcSadSsd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight, |
| 1088 | ; int32_t iPicStride,int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16, int32_t *psqdiff16x16) | 1073 | ; int32_t iPicStride,int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16, int32_t *psqdiff16x16) |
| 1089 | ;************************************************************************************************************* | 1074 | ;************************************************************************************************************* |
| 1090 | 1075 | ||
| 1091 | 1076 | ||
| 1092 | ALIGN 16 | 1077 | WELS_EXTERN VAACalcSadSsd_sse2 |
| 1093 | VAACalcSadSsd_sse2: | ||
| 1094 | %define localsize 12 | 1078 | %define localsize 12 |
| 1095 | %define cur_data arg1;r0 | 1079 | %define cur_data arg1;r0 |
| 1096 | %define ref_data arg2;r1 | 1080 | %define ref_data arg2;r1 |
| @@ -1246,15 +1230,13 @@ sqdiff_width_loop: · 149 unmodified lines | |||
| 1246 | %endif | 1230 | %endif |
| 1247 | 1231 | ||
| 1248 | %ifdef X86_32 | 1232 | %ifdef X86_32 |
| 1249 | WELS_EXTERN VAACalcSadBgd_sse2 | ||
| 1250 | ;************************************************************************************************************* | 1233 | ;************************************************************************************************************* |
| 1251 | ;void VAACalcSadBgd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight, | 1234 | ;void VAACalcSadBgd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight, |
| 1252 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *p_sd8x8, uint8_t *p_mad8x8) | 1235 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *p_sd8x8, uint8_t *p_mad8x8) |
| 1253 | ;************************************************************************************************************* | 1236 | ;************************************************************************************************************* |
| 1254 | 1237 | ||
| 1255 | 1238 | ||
| 1256 | ALIGN 16 | 1239 | WELS_EXTERN VAACalcSadBgd_sse2 |
| 1257 | VAACalcSadBgd_sse2: | ||
| 1258 | %define localsize 12 | 1240 | %define localsize 12 |
| 1259 | %define cur_data esp + pushsize + localsize + 4 | 1241 | %define cur_data esp + pushsize + localsize + 4 |
| 1260 | %define ref_data esp + pushsize + localsize + 8 | 1242 | %define ref_data esp + pushsize + localsize + 8 |
| @@ -1425,7 +1407,6 @@ bgd_width_loop: · 164 unmodified lines | |||
| 1425 | 1407 | ||
| 1426 | 1408 | ||
| 1427 | 1409 | ||
| 1428 | WELS_EXTERN VAACalcSadSsdBgd_sse2 | ||
| 1429 | ;************************************************************************************************************* | 1410 | ;************************************************************************************************************* |
| 1430 | ;void VAACalcSadSsdBgd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight, | 1411 | ;void VAACalcSadSsdBgd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight, |
| 1431 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16, | 1412 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16, |
| @@ -1433,8 +1414,7 @@ WELS_EXTERN VAACalcSadSsdBgd_sse2 · 1 unmodified line | |||
| 1433 | ;************************************************************************************************************* | 1414 | ;************************************************************************************************************* |
| 1434 | 1415 | ||
| 1435 | 1416 | ||
| 1436 | ALIGN 16 | 1417 | WELS_EXTERN VAACalcSadSsdBgd_sse2 |
| 1437 | VAACalcSadSsdBgd_sse2: | ||
| 1438 | %define localsize 16 | 1418 | %define localsize 16 |
| 1439 | %define cur_data esp + pushsize + localsize + 4 | 1419 | %define cur_data esp + pushsize + localsize + 4 |
| 1440 | %define ref_data esp + pushsize + localsize + 8 | 1420 | %define ref_data esp + pushsize + localsize + 8 |
| @@ -1656,15 +1636,13 @@ sqdiff_bgd_width_loop: · 215 unmodified lines | |||
| 1656 | ret | 1636 | ret |
| 1657 | %else | 1637 | %else |
| 1658 | 1638 | ||
| 1659 | WELS_EXTERN VAACalcSadBgd_sse2 | ||
| 1660 | ;************************************************************************************************************* | 1639 | ;************************************************************************************************************* |
| 1661 | ;void VAACalcSadBgd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight, | 1640 | ;void VAACalcSadBgd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight, |
| 1662 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *p_sd8x8, uint8_t *p_mad8x8) | 1641 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *p_sd8x8, uint8_t *p_mad8x8) |
| 1663 | ;************************************************************************************************************* | 1642 | ;************************************************************************************************************* |
| 1664 | 1643 | ||
| 1665 | 1644 | ||
| 1666 | ALIGN 16 | 1645 | WELS_EXTERN VAACalcSadBgd_sse2 |
| 1667 | VAACalcSadBgd_sse2: | ||
| 1668 | %define cur_data arg1; | 1646 | %define cur_data arg1; |
| 1669 | %define ref_data arg2; | 1647 | %define ref_data arg2; |
| 1670 | %define iPicWidth arg3; | 1648 | %define iPicWidth arg3; |
| @@ -1827,7 +1805,6 @@ bgd_width_loop: · 156 unmodified lines | |||
| 1827 | 1805 | ||
| 1828 | 1806 | ||
| 1829 | 1807 | ||
| 1830 | WELS_EXTERN VAACalcSadSsdBgd_sse2 | ||
| 1831 | ;************************************************************************************************************* | 1808 | ;************************************************************************************************************* |
| 1832 | ;void VAACalcSadSsdBgd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight, | 1809 | ;void VAACalcSadSsdBgd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight, |
| 1833 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16, | 1810 | ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16, |
| @@ -1835,8 +1812,7 @@ WELS_EXTERN VAACalcSadSsdBgd_sse2 · 1 unmodified line | |||
| 1835 | ;************************************************************************************************************* | 1812 | ;************************************************************************************************************* |
| 1836 | 1813 | ||
| 1837 | 1814 | ||
| 1838 | ALIGN 16 | 1815 | WELS_EXTERN VAACalcSadSsdBgd_sse2 |
| 1839 | VAACalcSadSsdBgd_sse2: | ||
| 1840 | %define cur_data arg1; | 1816 | %define cur_data arg1; |
| 1841 | %define ref_data arg2; | 1817 | %define ref_data arg2; |
| 1842 | %define iPicWidth arg3; | 1818 | %define iPicWidth arg3; |