X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavutil%2Fx86%2Fx86util.asm;h=fc4781b5321ad486b53ae301f4037c4a881e566f;hb=7c1aba4f01a10915d356c7bc0c6bfed25cbb623e;hp=1cede4d336f519fdc48875c59bae7e9ca3f37003;hpb=ecaf5143282cc7a8335f5e19c750de66b1ee8389;p=ffmpeg diff --git a/libavutil/x86/x86util.asm b/libavutil/x86/x86util.asm index 1cede4d336f..fc4781b5321 100644 --- a/libavutil/x86/x86util.asm +++ b/libavutil/x86/x86util.asm @@ -540,3 +540,36 @@ pmaxsw %1, %2 pminsw %1, %3 %endmacro + +%macro PMINSD_MMX 3 ; dst, src, tmp + mova %3, %2 + pcmpgtd %3, %1 + pxor %1, %2 + pand %1, %3 + pxor %1, %2 +%endmacro + +%macro PMAXSD_MMX 3 ; dst, src, tmp + mova %3, %1 + pcmpgtd %3, %2 + pand %1, %3 + pandn %3, %2 + por %1, %3 +%endmacro + +%macro CLIPD_MMX 3-4 ; src/dst, min, max, tmp + PMINSD_MMX %1, %3, %4 + PMAXSD_MMX %1, %2, %4 +%endmacro + +%macro CLIPD_SSE2 3-4 ; src/dst, min (float), max (float), unused + cvtdq2ps %1, %1 + minps %1, %3 + maxps %1, %2 + cvtps2dq %1, %1 +%endmacro + +%macro CLIPD_SSE41 3-4 ; src/dst, min, max, unused + pminsd %1, %3 + pmaxsd %1, %2 +%endmacro