Skip to content

Commit 994c4bc

Browse files
committed
x86util: Port all macros to cpuflags
Also do some small cosmetic changes: Drop pointless _MMX suffix from ABSD2 macro name, drop pointless check for MMX support, we always assume MMX is available in our SIMD code, fix spelling.
1 parent 522d850 commit 994c4bc

File tree

3 files changed

+33
-34
lines changed

3 files changed

+33
-34
lines changed

libavcodec/x86/audiodsp.asm

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ SCALARPRODUCT
6666
; %1 = number of xmm registers used
6767
; %2 = number of inline load/process/store loops per asm loop
6868
; %3 = process 4*mmsize (%3=0) or 8*mmsize (%3=1) bytes per loop
69-
; %4 = CLIPD function takes min/max as float instead of int (CLIPD_SSE2)
69+
; %4 = CLIPD function takes min/max as float instead of int (SSE2 version)
7070
; %5 = suffix
7171
%macro VECTOR_CLIP_INT32 4-5
7272
cglobal vector_clip_int32%5, 5,5,%1, dst, src, min, max, len
@@ -122,14 +122,11 @@ cglobal vector_clip_int32%5, 5,5,%1, dst, src, min, max, len
122122
%endmacro
123123

124124
INIT_MMX mmx
125-
%define CLIPD CLIPD_MMX
126125
VECTOR_CLIP_INT32 0, 1, 0, 0
127126
INIT_XMM sse2
128127
VECTOR_CLIP_INT32 6, 1, 0, 0, _int
129-
%define CLIPD CLIPD_SSE2
130128
VECTOR_CLIP_INT32 6, 2, 0, 1
131129
INIT_XMM sse4
132-
%define CLIPD CLIPD_SSE41
133130
%ifdef m8
134131
VECTOR_CLIP_INT32 11, 1, 1, 0
135132
%else

libavutil/x86/x86util.asm

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -174,13 +174,13 @@
174174
%endif
175175
%endmacro
176176

177-
%macro PSIGNW_MMX 2
177+
%macro PSIGNW 2
178+
%if cpuflag(ssse3)
179+
psignw %1, %2
180+
%else
178181
pxor %1, %2
179182
psubw %1, %2
180-
%endmacro
181-
182-
%macro PSIGNW_SSSE3 2
183-
psignw %1, %2
183+
%endif
184184
%endmacro
185185

186186
%macro ABS1 2
@@ -221,7 +221,7 @@
221221
%endif
222222
%endmacro
223223

224-
%macro ABSB 2 ; source mmreg, temp mmreg (unused for ssse3)
224+
%macro ABSB 2 ; source mmreg, temp mmreg (unused for SSSE3)
225225
%if cpuflag(ssse3)
226226
pabsb %1, %1
227227
%else
@@ -245,7 +245,7 @@
245245
%endif
246246
%endmacro
247247

248-
%macro ABSD2_MMX 4
248+
%macro ABSD2 4
249249
pxor %3, %3
250250
pxor %4, %4
251251
pcmpgtd %3, %1
@@ -290,7 +290,7 @@
290290
%else
291291
palignr %1, %2, %3
292292
%endif
293-
%elif cpuflag(mmx) ; [dst,] src1, src2, imm, tmp
293+
%else ; [dst,] src1, src2, imm, tmp
294294
%define %%dst %1
295295
%if %0==5
296296
%ifnidn %1, %2
@@ -606,37 +606,47 @@
606606
pminsw %1, %3
607607
%endmacro
608608

609-
%macro PMINSD_MMX 3 ; dst, src, tmp
609+
%macro PMINSD 3 ; dst, src, tmp/unused
610+
%if cpuflag(sse4)
611+
pminsd %1, %2
612+
%elif cpuflag(sse2)
613+
cvtdq2ps %1, %1
614+
minps %1, %2
615+
cvtps2dq %1, %1
616+
%else
610617
mova %3, %2
611618
pcmpgtd %3, %1
612619
pxor %1, %2
613620
pand %1, %3
614621
pxor %1, %2
622+
%endif
615623
%endmacro
616624

617-
%macro PMAXSD_MMX 3 ; dst, src, tmp
625+
%macro PMAXSD 3 ; dst, src, tmp/unused
626+
%if cpuflag(sse4)
627+
pmaxsd %1, %2
628+
%else
618629
mova %3, %1
619630
pcmpgtd %3, %2
620631
pand %1, %3
621632
pandn %3, %2
622633
por %1, %3
634+
%endif
623635
%endmacro
624636

625-
%macro CLIPD_MMX 3-4 ; src/dst, min, max, tmp
626-
PMINSD_MMX %1, %3, %4
627-
PMAXSD_MMX %1, %2, %4
628-
%endmacro
629-
630-
%macro CLIPD_SSE2 3-4 ; src/dst, min (float), max (float), unused
637+
%macro CLIPD 3-4
638+
%if cpuflag(sse4); src/dst, min, max, unused
639+
pminsd %1, %3
640+
pmaxsd %1, %2
641+
%elif cpuflag(sse2) ; src/dst, min (float), max (float), unused
631642
cvtdq2ps %1, %1
632643
minps %1, %3
633644
maxps %1, %2
634645
cvtps2dq %1, %1
635-
%endmacro
636-
637-
%macro CLIPD_SSE41 3-4 ; src/dst, min, max, unused
638-
pminsd %1, %3
639-
pmaxsd %1, %2
646+
%else ; src/dst, min, max, tmp
647+
PMINSD %1, %3, %4
648+
PMAXSD %1, %2, %4
649+
%endif
640650
%endmacro
641651

642652
%macro VBROADCASTSS 2 ; dst xmm/ymm, src m32

libswscale/x86/scale.asm

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -364,15 +364,7 @@ cglobal hscale%1to%2_%4, %5, 10, %6, pos0, dst, w, srcmem, filter, fltpos, fltsi
364364
movd [dstq+wq*2], m0
365365
%endif ; %3 ==/!= X
366366
%else ; %2 == 19
367-
%if mmsize == 8
368-
PMINSD_MMX m0, m2, m4
369-
%elif cpuflag(sse4)
370-
pminsd m0, m2
371-
%else ; sse2/ssse3
372-
cvtdq2ps m0, m0
373-
minps m0, m2
374-
cvtps2dq m0, m0
375-
%endif ; mmx/sse2/ssse3/sse4
367+
PMINSD m0, m2, m4
376368
%ifnidn %3, X
377369
mova [dstq+wq*(4>>wshr)], m0
378370
%else ; %3 == X

0 commit comments

Comments
 (0)