History

Merge pull request #517 from mstorsjo/simplify-x86-asm-func-macro

Fold ALIGN 16 and the function label into WELS_EXTERN

volvet committed 12 years ago

Commit e75cd222 parents 6892127 eec968221 files · +75 −411Browse files

Showing the changes to codec/processing/src (3 of 21 files). Show all

Unified · Split

3 files
  1. codec/processing/src/asm/denoisefilter.asm +2 −6
  2. codec/processing/src/asm/downsample_bilinear.asm +9 −29
  3. codec/processing/src/asm/vaa.asm +12 −36
codec/processing/src/asm/denoisefilter.asm+2−6
@@ -163,8 +163,6 @@ SECTION .text · 162 unmodified lines
163163 paddw %3, %2
164164 %endmacro
165165
166−ALIGN 16
167−WELS_EXTERN BilateralLumaFilter8_sse2
168166 ;***********************************************************************
169167 ; BilateralLumaFilter8_sse2(uint8_t *pixels, int stride);
170168 ;***********************************************************************
@@ -173,7 +171,7 @@ WELS_EXTERN BilateralLumaFilter8_sse2 · 2 unmodified lines
173171 ; 6 7 8
174172 ; 0: the center point
175173
176−BilateralLumaFilter8_sse2:
174+WELS_EXTERN BilateralLumaFilter8_sse2
177175
178176 push r3
179177 %assign push_num 1
@@ -219,7 +217,6 @@ BilateralLumaFilter8_sse2: · 39 unmodified lines
219217
220218 ret
221219
222−WELS_EXTERN WaverageChromaFilter8_sse2
223220 ;***********************************************************************
224221 ; void WaverageChromaFilter8_sse2(uint8_t *pixels, int stride);
225222 ;***********************************************************************
@@ -230,8 +227,7 @@ WELS_EXTERN WaverageChromaFilter8_sse2 · 4 unmodified lines
230227 ;1 2 4 2 1
231228 ;1 1 2 1 1
232229
233−ALIGN 16
234−WaverageChromaFilter8_sse2:
230+WELS_EXTERN WaverageChromaFilter8_sse2
235231
236232 push r3
237233
codec/processing/src/asm/downsample_bilinear.asm+9−29
@@ -66,22 +66,18 @@ shufb_mask_high: · 65 unmodified lines
6666 db 01h, 80h, 03h, 80h, 05h, 80h, 07h, 80h, 09h, 80h, 0bh, 80h, 0dh, 80h, 0fh, 80h
6767
6868
69−ALIGN 16
70−
7169 ;***********************************************************************
7270 ; Code
7371 ;***********************************************************************
7472
7573 SECTION .text
7674
77−WELS_EXTERN DyadicBilinearDownsamplerWidthx32_sse
7875 ;***********************************************************************
7976 ; void DyadicBilinearDownsamplerWidthx32_sse( unsigned char* pDst, const int iDstStride,
8077 ; unsigned char* pSrc, const int iSrcStride,
8178 ; const int iSrcWidth, const int iSrcHeight );
8279 ;***********************************************************************
83−ALIGN 16
84−DyadicBilinearDownsamplerWidthx32_sse:
80+WELS_EXTERN DyadicBilinearDownsamplerWidthx32_sse
8581 push ebx
8682 push edx
8783 push esi
@@ -227,14 +223,12 @@ DyadicBilinearDownsamplerWidthx32_sse: · 139 unmodified lines
227223 pop ebx
228224 ret
229225
230−WELS_EXTERN DyadicBilinearDownsamplerWidthx16_sse
231226 ;***********************************************************************
232227 ; void DyadicBilinearDownsamplerWidthx16_sse( unsigned char* pDst, const int iDstStride,
233228 ; unsigned char* pSrc, const int iSrcStride,
234229 ; const int iSrcWidth, const int iSrcHeight );
235230 ;***********************************************************************
236−ALIGN 16
237−DyadicBilinearDownsamplerWidthx16_sse:
231+WELS_EXTERN DyadicBilinearDownsamplerWidthx16_sse
238232 push ebx
239233 push edx
240234 push esi
@@ -331,14 +325,12 @@ DyadicBilinearDownsamplerWidthx16_sse: · 90 unmodified lines
331325 pop ebx
332326 ret
333327
334−WELS_EXTERN DyadicBilinearDownsamplerWidthx8_sse
335328 ;***********************************************************************
336329 ; void DyadicBilinearDownsamplerWidthx8_sse( unsigned char* pDst, const int iDstStride,
337330 ; unsigned char* pSrc, const int iSrcStride,
338331 ; const int iSrcWidth, const int iSrcHeight );
339332 ;***********************************************************************
340−ALIGN 16
341−DyadicBilinearDownsamplerWidthx8_sse:
333+WELS_EXTERN DyadicBilinearDownsamplerWidthx8_sse
342334 push ebx
343335 push edx
344336 push esi
@@ -422,14 +414,12 @@ DyadicBilinearDownsamplerWidthx8_sse: · 77 unmodified lines
422414
423415
424416 ; got about 50% improvement over DyadicBilinearDownsamplerWidthx32_sse
425−WELS_EXTERN DyadicBilinearDownsamplerWidthx32_ssse3
426417 ;***********************************************************************
427418 ; void DyadicBilinearDownsamplerWidthx32_ssse3( unsigned char* pDst, const int iDstStride,
428419 ; unsigned char* pSrc, const int iSrcStride,
429420 ; const int iSrcWidth, const int iSrcHeight );
430421 ;***********************************************************************
431−ALIGN 16
432−DyadicBilinearDownsamplerWidthx32_ssse3:
422+WELS_EXTERN DyadicBilinearDownsamplerWidthx32_ssse3
433423 push ebx
434424 push edx
435425 push esi
@@ -533,14 +523,12 @@ DyadicBilinearDownsamplerWidthx32_ssse3: · 97 unmodified lines
533523 pop ebx
534524 ret
535525
536−WELS_EXTERN DyadicBilinearDownsamplerWidthx16_ssse3
537526 ;***********************************************************************
538527 ; void DyadicBilinearDownsamplerWidthx16_ssse3( unsigned char* pDst, const int iDstStride,
539528 ; unsigned char* pSrc, const int iSrcStride,
540529 ; const int iSrcWidth, const int iSrcHeight );
541530 ;***********************************************************************
542−ALIGN 16
543−DyadicBilinearDownsamplerWidthx16_ssse3:
531+WELS_EXTERN DyadicBilinearDownsamplerWidthx16_ssse3
544532 push ebx
545533 push edx
546534 push esi
@@ -623,14 +611,12 @@ DyadicBilinearDownsamplerWidthx16_ssse3: · 76 unmodified lines
623611 ret
624612
625613 ; got about 65% improvement over DyadicBilinearDownsamplerWidthx32_sse
626−WELS_EXTERN DyadicBilinearDownsamplerWidthx32_sse4
627614 ;***********************************************************************
628615 ; void DyadicBilinearDownsamplerWidthx32_sse4( unsigned char* pDst, const int iDstStride,
629616 ; unsigned char* pSrc, const int iSrcStride,
630617 ; const int iSrcWidth, const int iSrcHeight );
631618 ;***********************************************************************
632−ALIGN 16
633−DyadicBilinearDownsamplerWidthx32_sse4:
619+WELS_EXTERN DyadicBilinearDownsamplerWidthx32_sse4
634620 push ebx
635621 push edx
636622 push esi
@@ -733,14 +719,12 @@ DyadicBilinearDownsamplerWidthx32_sse4: · 96 unmodified lines
733719 pop ebx
734720 ret
735721
736−WELS_EXTERN DyadicBilinearDownsamplerWidthx16_sse4
737722 ;***********************************************************************
738723 ; void DyadicBilinearDownsamplerWidthx16_sse4( unsigned char* pDst, const int iDstStride,
739724 ; unsigned char* pSrc, const int iSrcStride,
740725 ; const int iSrcWidth, const int iSrcHeight );
741726 ;***********************************************************************
742−ALIGN 16
743−DyadicBilinearDownsamplerWidthx16_sse4:
727+WELS_EXTERN DyadicBilinearDownsamplerWidthx16_sse4
744728 push ebx
745729 push edx
746730 push esi
@@ -825,7 +809,6 @@ DyadicBilinearDownsamplerWidthx16_sse4: · 78 unmodified lines
825809
826810
827811
828−WELS_EXTERN GeneralBilinearAccurateDownsampler_sse2
829812 ;**************************************************************************************************************
830813 ;int GeneralBilinearAccurateDownsampler_sse2( unsigned char* pDst, const int iDstStride, const int iDstWidth, const int iDstHeight,
831814 ; unsigned char* pSrc, const int iSrcStride, const int iSrcWidth, const int iSrcHeight,
@@ -833,8 +816,7 @@ WELS_EXTERN GeneralBilinearAccurateDownsampler_sse2 · 1 unmodified line
833816 ;{
834817 ;**************************************************************************************************************
835818
836−ALIGN 16
837−GeneralBilinearAccurateDownsampler_sse2:
819+WELS_EXTERN GeneralBilinearAccurateDownsampler_sse2
838820 push ebp
839821 push esi
840822 push edi
@@ -1029,7 +1011,6 @@ LAST_ROW_END: · 188 unmodified lines
10291011
10301012
10311013
1032−WELS_EXTERN GeneralBilinearFastDownsampler_sse2
10331014 ;**************************************************************************************************************
10341015 ;int GeneralBilinearFastDownsampler_sse2( unsigned char* pDst, const int iDstStride, const int iDstWidth, const int iDstHeight,
10351016 ; unsigned char* pSrc, const int iSrcStride, const int iSrcWidth, const int iSrcHeight,
@@ -1037,8 +1018,7 @@ WELS_EXTERN GeneralBilinearFastDownsampler_sse2 · 1 unmodified line
10371018 ;{
10381019 ;**************************************************************************************************************
10391020
1040−ALIGN 16
1041−GeneralBilinearFastDownsampler_sse2:
1021+WELS_EXTERN GeneralBilinearFastDownsampler_sse2
10421022 push ebp
10431023 push esi
10441024 push edi
codec/processing/src/asm/vaa.asm+12−36
@@ -245,12 +245,10 @@ SECTION .text · 244 unmodified lines
245245
246246 %ifdef X86_32
247247
248−WELS_EXTERN SampleVariance16x16_sse2
249248 ;***********************************************************************
250249 ; void SampleVariance16x16_sse2( uint8_t * y_ref, int32_t y_ref_stride, uint8_t * y_src, int32_t y_src_stride,SMotionTextureUnit* pMotionTexture );
251250 ;***********************************************************************
252−ALIGN 16
253−SampleVariance16x16_sse2:
251+WELS_EXTERN SampleVariance16x16_sse2
254252 push esi
255253 push edi
256254 push ebx
@@ -347,15 +345,13 @@ SampleVariance16x16_sse2: · 90 unmodified lines
347345
348346
349347
350−WELS_EXTERN VAACalcSad_sse2
351348 ;*************************************************************************************************************
352349 ;void VAACalcSad_sse2( const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight
353350 ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8)
354351 ;*************************************************************************************************************
355352
356353
357−ALIGN 16
358−VAACalcSad_sse2:
354+WELS_EXTERN VAACalcSad_sse2
359355 %define cur_data esp + pushsize + 4
360356 %define ref_data esp + pushsize + 8
361357 %define iPicWidth esp + pushsize + 12
@@ -441,12 +437,10 @@ width_loop: · 79 unmodified lines
441437
442438 %else ;64-bit
443439
444−WELS_EXTERN SampleVariance16x16_sse2
445440 ;***********************************************************************
446441 ; void SampleVariance16x16_sse2( uint8_t * y_ref, int32_t y_ref_stride, uint8_t * y_src, int32_t y_src_stride,SMotionTextureUnit* pMotionTexture );
447442 ;***********************************************************************
448−ALIGN 16
449−SampleVariance16x16_sse2:
443+WELS_EXTERN SampleVariance16x16_sse2
450444 %define SUM r10;[esp]
451445 %define SUM_CUR r11;[esp+4]
452446 %define SQR r13;[esp+8]
@@ -539,15 +533,13 @@ SampleVariance16x16_sse2: · 86 unmodified lines
539533 ret
540534
541535
542−WELS_EXTERN VAACalcSad_sse2
543536 ;*************************************************************************************************************
544537 ;void VAACalcSad_sse2( const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight
545538 ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8)
546539 ;*************************************************************************************************************
547540
548541
549−ALIGN 16
550−VAACalcSad_sse2:
542+WELS_EXTERN VAACalcSad_sse2
551543 %define cur_data r0
552544 %define ref_data r1
553545 %define iPicWidth r2
@@ -637,15 +629,13 @@ width_loop: · 83 unmodified lines
637629
638630
639631 %ifdef X86_32
640−WELS_EXTERN VAACalcSadVar_sse2
641632 ;*************************************************************************************************************
642633 ;void VAACalcSadVar_sse2( const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight
643634 ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16)
644635 ;*************************************************************************************************************
645636
646637
647−ALIGN 16
648−VAACalcSadVar_sse2:
638+WELS_EXTERN VAACalcSadVar_sse2
649639 %define localsize 8
650640 %define cur_data esp + pushsize + localsize + 4
651641 %define ref_data esp + pushsize + localsize + 8
@@ -773,15 +763,13 @@ var_width_loop: · 121 unmodified lines
773763
774764 %else ;64-bit
775765
776−WELS_EXTERN VAACalcSadVar_sse2
777766 ;*************************************************************************************************************
778767 ;void VAACalcSadVar_sse2( const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight
779768 ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16)
780769 ;*************************************************************************************************************
781770
782771
783−ALIGN 16
784−VAACalcSadVar_sse2:
772+WELS_EXTERN VAACalcSadVar_sse2
785773 %define cur_data arg1 ;r0
786774 %define ref_data arg2 ;r1
787775 %define iPicWidth arg3 ;r2
@@ -916,15 +904,13 @@ var_width_loop: · 128 unmodified lines
916904
917905 %ifdef X86_32
918906
919−WELS_EXTERN VAACalcSadSsd_sse2
920907 ;*************************************************************************************************************
921908 ;void VAACalcSadSsd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight,
922909 ; int32_t iPicStride,int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16, int32_t *psqdiff16x16)
923910 ;*************************************************************************************************************
924911
925912
926−ALIGN 16
927−VAACalcSadSsd_sse2:
913+WELS_EXTERN VAACalcSadSsd_sse2
928914 %define localsize 12
929915 %define cur_data esp + pushsize + localsize + 4
930916 %define ref_data esp + pushsize + localsize + 8
@@ -1072,15 +1058,13 @@ sqdiff_width_loop: · 141 unmodified lines
10721058 %else
10731059
10741060
1075−WELS_EXTERN VAACalcSadSsd_sse2
10761061 ;*************************************************************************************************************
10771062 ;void VAACalcSadSsd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight,
10781063 ; int32_t iPicStride,int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16, int32_t *psqdiff16x16)
10791064 ;*************************************************************************************************************
10801065
10811066
1082−ALIGN 16
1083−VAACalcSadSsd_sse2:
1067+WELS_EXTERN VAACalcSadSsd_sse2
10841068 %define localsize 12
10851069 %define cur_data arg1;r0
10861070 %define ref_data arg2;r1
@@ -1236,15 +1220,13 @@ sqdiff_width_loop: · 149 unmodified lines
12361220 %endif
12371221
12381222 %ifdef X86_32
1239−WELS_EXTERN VAACalcSadBgd_sse2
12401223 ;*************************************************************************************************************
12411224 ;void VAACalcSadBgd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight,
12421225 ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *p_sd8x8, uint8_t *p_mad8x8)
12431226 ;*************************************************************************************************************
12441227
12451228
1246−ALIGN 16
1247−VAACalcSadBgd_sse2:
1229+WELS_EXTERN VAACalcSadBgd_sse2
12481230 %define localsize 12
12491231 %define cur_data esp + pushsize + localsize + 4
12501232 %define ref_data esp + pushsize + localsize + 8
@@ -1415,7 +1397,6 @@ bgd_width_loop: · 164 unmodified lines
14151397
14161398
14171399
1418−WELS_EXTERN VAACalcSadSsdBgd_sse2
14191400 ;*************************************************************************************************************
14201401 ;void VAACalcSadSsdBgd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight,
14211402 ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16,
@@ -1423,8 +1404,7 @@ WELS_EXTERN VAACalcSadSsdBgd_sse2 · 1 unmodified line
14231404 ;*************************************************************************************************************
14241405
14251406
1426−ALIGN 16
1427−VAACalcSadSsdBgd_sse2:
1407+WELS_EXTERN VAACalcSadSsdBgd_sse2
14281408 %define localsize 16
14291409 %define cur_data esp + pushsize + localsize + 4
14301410 %define ref_data esp + pushsize + localsize + 8
@@ -1646,15 +1626,13 @@ sqdiff_bgd_width_loop: · 215 unmodified lines
16461626 ret
16471627 %else
16481628
1649−WELS_EXTERN VAACalcSadBgd_sse2
16501629 ;*************************************************************************************************************
16511630 ;void VAACalcSadBgd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight,
16521631 ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *p_sd8x8, uint8_t *p_mad8x8)
16531632 ;*************************************************************************************************************
16541633
16551634
1656−ALIGN 16
1657−VAACalcSadBgd_sse2:
1635+WELS_EXTERN VAACalcSadBgd_sse2
16581636 %define cur_data arg1;
16591637 %define ref_data arg2;
16601638 %define iPicWidth arg3;
@@ -1817,7 +1795,6 @@ bgd_width_loop: · 156 unmodified lines
18171795
18181796
18191797
1820−WELS_EXTERN VAACalcSadSsdBgd_sse2
18211798 ;*************************************************************************************************************
18221799 ;void VAACalcSadSsdBgd_sse2(const uint8_t *cur_data, const uint8_t *ref_data, int32_t iPicWidth, int32_t iPicHeight,
18231800 ; int32_t iPicStride, int32_t *psadframe, int32_t *psad8x8, int32_t *psum16x16, int32_t *psqsum16x16,
@@ -1825,8 +1802,7 @@ WELS_EXTERN VAACalcSadSsdBgd_sse2 · 1 unmodified line
18251802 ;*************************************************************************************************************
18261803
18271804
1828−ALIGN 16
1829−VAACalcSadSsdBgd_sse2:
1805+WELS_EXTERN VAACalcSadSsdBgd_sse2
18301806 %define cur_data arg1;
18311807 %define ref_data arg2;
18321808 %define iPicWidth arg3;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t