This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit ef5929f4ebb158ae689845055513a5725f5de28c
Author:     Zuxy Meng <[email protected]>
AuthorDate: Sat Aug 22 17:58:36 2026 -0700
Commit:     Zuxy Meng <[email protected]>
CommitDate: Fri Sep 4 20:58:15 2026 -0700

    avcodec/x86/h264_weight: less callee saved XMM registers in Windows
    
    Tweak usage of XMM regisers so that Windows can save less upon function
    entry.
    
    Signed-off-by: Zuxy Meng <[email protected]>
---
 libavcodec/x86/h264_weight.asm       | 80 ++++++++++++++++++------------------
 libavcodec/x86/h264_weight_10bit.asm | 28 ++++++++-----
 2 files changed, 58 insertions(+), 50 deletions(-)

diff --git a/libavcodec/x86/h264_weight.asm b/libavcodec/x86/h264_weight.asm
index acd6cfbfdd..751c910b71 100644
--- a/libavcodec/x86/h264_weight.asm
+++ b/libavcodec/x86/h264_weight.asm
@@ -41,14 +41,14 @@ SECTION .text
     inc        r5
     movd       m3, r4d
     movd       m5, r5d
-    movd       m6, r3d
-    pslld      m5, m6
+    movd       m2, r3d
+    pslld      m5, m2
     psrld      m5, 1
     pshuflw    m3, m3, 0
     pshuflw    m5, m5, 0
     punpcklqdq m3, m3
     punpcklqdq m5, m5
-    pxor       m7, m7
+    pxor       m4, m4
 %endmacro
 
 %macro WEIGHT_OP 3
@@ -59,19 +59,19 @@ SECTION .text
     movh          m0, [r0+%1]
     movh          m1, [r0+%2]
 %endif
-    punpcklbw     m0, m7
-    punpcklbw     m1, m7
+    punpcklbw     m0, m4
+    punpcklbw     m1, m4
     pmullw        m0, m3
     pmullw        m1, m3
     paddsw        m0, m5
     paddsw        m1, m5
-    psraw         m0, m6
-    psraw         m1, m6
+    psraw         m0, m2
+    psraw         m1, m2
     packuswb      m0, m1
 %endmacro
 
 %macro WEIGHT_FUNC_MM 1
-cglobal h264_weight_%1, 6, 6, 8
+cglobal h264_weight_%1, 6, 6, 6
     WEIGHT_SETUP
 .nextrow:
     WEIGHT_OP 0, mmsize/2, %1
@@ -86,7 +86,7 @@ INIT_XMM sse2
 WEIGHT_FUNC_MM 16
 
 %macro WEIGHT_FUNC_HALF_MM 1
-cglobal h264_weight_%1, 6, 6, 8
+cglobal h264_weight_%1, 6, 6, 6
     WEIGHT_SETUP
     sar       r2d, 1
     lea        r3, [r1*2]
@@ -135,12 +135,12 @@ WEIGHT_FUNC_HALF_MM 8
     movd       m4, r5d
     movd       m0, r6d
 %else
-    movd       m3, r5d
+    movd       m6, r5d
     movd       m4, r6d
 %endif
     movd       m5, off_regd
-    movd       m6, r4d
-    pslld      m5, m6
+    movd       m3, r4d
+    pslld      m5, m3
     psrld      m5, 1
 %if cpuflag(ssse3)
     punpcklbw  m4, m0
@@ -150,22 +150,22 @@ WEIGHT_FUNC_HALF_MM 8
     punpcklqdq m5, m5
 
 %else
-    pshuflw    m3, m3, 0
+    pshuflw    m6, m6, 0
     pshuflw    m4, m4, 0
     pshuflw    m5, m5, 0
-    punpcklqdq m3, m3
+    punpcklqdq m6, m6
     punpcklqdq m4, m4
     punpcklqdq m5, m5
-    pxor       m7, m7
+    pxor       m2, m2
 %endif
 %endmacro
 
 %macro BIWEIGHT_STEPA 3
     movh       m%1, [r0+%3]
     movh       m%2, [r1+%3]
-    punpcklbw  m%1, m7
-    punpcklbw  m%2, m7
-    pmullw     m%1, m3
+    punpcklbw  m%1, m2
+    punpcklbw  m%2, m2
+    pmullw     m%1, m6
     pmullw     m%2, m4
     paddsw     m%1, m%2
 %endmacro
@@ -173,18 +173,18 @@ WEIGHT_FUNC_HALF_MM 8
 %macro BIWEIGHT_STEPB 0
     paddsw     m0, m5
     paddsw     m1, m5
-    psraw      m0, m6
-    psraw      m1, m6
+    psraw      m0, m3
+    psraw      m1, m3
     packuswb   m0, m1
 %endmacro
 
-%macro BIWEIGHT_FUNC_MM 2
-cglobal h264_biweight_%1, 7, 8, %2
+%macro BIWEIGHT_FUNC_MM 1
+cglobal h264_biweight_%1, 7, 8, 8
     BIWEIGHT_SETUP
     movifnidn r3d, r3m
 .nextrow:
     BIWEIGHT_STEPA 0, 1, 0
-    BIWEIGHT_STEPA 1, 2, mmsize/2
+    BIWEIGHT_STEPA 1, 7, mmsize/2
     BIWEIGHT_STEPB
     mova       [r0], m0
     add        r0, r2
@@ -195,7 +195,7 @@ cglobal h264_biweight_%1, 7, 8, %2
 %endmacro
 
 INIT_XMM sse2
-BIWEIGHT_FUNC_MM 16, 8
+BIWEIGHT_FUNC_MM 16
 
 %macro BIWEIGHT_FUNC_HALF_MM 2
 cglobal h264_biweight_%1, 7, 8, %2
@@ -210,14 +210,14 @@ cglobal h264_biweight_%1, 7, 8, %2
     punpcklbw  m0, m1
     pmaddubsw  m0, m4
 %else
-    punpcklbw  m0, m7
-    punpcklbw  m1, m7
-    pmullw     m0, m3
+    punpcklbw  m0, m2
+    punpcklbw  m1, m2
+    pmullw     m0, m6
     pmullw     m1, m4
     paddsw     m0, m1
 %endif
     paddsw     m0, m5
-    psraw      m0, m6
+    psraw      m0, m3
     packuswb   m0, m0
     movd       [r0], m0
     add        r0, r2
@@ -227,7 +227,7 @@ cglobal h264_biweight_%1, 7, 8, %2
     lea        r4, [r2*2]
 .nextrow:
     BIWEIGHT_STEPA 0, 1, 0
-    BIWEIGHT_STEPA 1, 2, r2
+    BIWEIGHT_STEPA 1, 7, r2
     BIWEIGHT_STEPB
     movh       [r0], m0
     movhps     [r0+r2], m0
@@ -240,9 +240,9 @@ cglobal h264_biweight_%1, 7, 8, %2
 %endmacro
 
 INIT_XMM sse2
-BIWEIGHT_FUNC_HALF_MM 4, 8
-INIT_XMM ssse3
 BIWEIGHT_FUNC_HALF_MM 4, 7
+INIT_XMM ssse3
+BIWEIGHT_FUNC_HALF_MM 4, 6
 INIT_XMM sse2
 BIWEIGHT_FUNC_HALF_MM 8, 8
 
@@ -251,22 +251,22 @@ BIWEIGHT_FUNC_HALF_MM 8, 8
     pmaddubsw  m2, m4
     paddsw     m0, m5
     paddsw     m2, m5
-    psraw      m0, m6
-    psraw      m2, m6
+    psraw      m0, m3
+    psraw      m2, m3
     packuswb   m0, m2
 %endmacro
 
 INIT_XMM ssse3
-cglobal h264_biweight_16, 7, 8, 8
+cglobal h264_biweight_16, 7, 8, 6
     BIWEIGHT_SETUP
     movifnidn r3d, r3m
 
 .nextrow:
     movh       m0, [r0]
     movh       m2, [r0+8]
-    movh       m3, [r1+8]
+    movh       m1, [r1+8]
     punpcklbw  m0, [r1]
-    punpcklbw  m2, m3
+    punpcklbw  m2, m1
     BIWEIGHT_SSSE3_OP
     mova       [r0], m0
     add        r0, r2
@@ -276,7 +276,7 @@ cglobal h264_biweight_16, 7, 8, 8
     RET
 
 INIT_XMM ssse3
-cglobal h264_biweight_8, 7, 8, 8
+cglobal h264_biweight_8, 7, 8, 6
     BIWEIGHT_SETUP
     movifnidn r3d, r3m
     sar       r3d, 1
@@ -285,10 +285,10 @@ cglobal h264_biweight_8, 7, 8, 8
 .nextrow:
     movh       m0, [r0]
     movh       m1, [r1]
-    movh       m2, [r0+r2]
-    movh       m3, [r1+r2]
     punpcklbw  m0, m1
-    punpcklbw  m2, m3
+    movh       m2, [r0+r2]
+    movh       m1, [r1+r2]
+    punpcklbw  m2, m1
     BIWEIGHT_SSSE3_OP
     movh       [r0], m0
     movhps     [r0+r2], m0
diff --git a/libavcodec/x86/h264_weight_10bit.asm 
b/libavcodec/x86/h264_weight_10bit.asm
index 7b7e367c9d..2044da7489 100644
--- a/libavcodec/x86/h264_weight_10bit.asm
+++ b/libavcodec/x86/h264_weight_10bit.asm
@@ -41,7 +41,11 @@ SECTION .text
 ;-----------------------------------------------------------------------------
 %macro WEIGHT_PROLOGUE 0
 .prologue:
-    PROLOGUE 0,6,8
+%if cpuflag(sse4)
+    PROLOGUE 0,6,6
+%else
+    PROLOGUE 0,6,7
+%endif
     movifnidn  r0, r0mp
     movifnidn r1d, r1m
     movifnidn r2d, r2m
@@ -63,31 +67,31 @@ SECTION .text
     mova       m4, [pw_pixel_max]
     paddw      m2, [sq_1]   ; log2_denom+1
 %if notcpuflag(sse4)
-    pxor       m7, m7
+    pxor       m6, m6
 %endif
 %endmacro
 
 %macro WEIGHT_OP 1-2
 %if %0==1
     mova        m5, [r0+%1]
-    punpckhwd   m6, m5, m0
+    punpckhwd   m1, m5, m0
     punpcklwd   m5, m0
 %else
     movq        m5, [r0+%1]
-    movq        m6, [r0+%2]
+    movq        m1, [r0+%2]
     punpcklwd   m5, m0
-    punpcklwd   m6, m0
+    punpcklwd   m1, m0
 %endif
     pmaddwd     m5, m3
-    pmaddwd     m6, m3
+    pmaddwd     m1, m3
     psrad       m5, m2
-    psrad       m6, m2
+    psrad       m1, m2
 %if cpuflag(sse4)
-    packusdw    m5, m6
+    packusdw    m5, m1
     pminuw      m5, m4
 %else
-    packssdw    m5, m6
-    CLIPW       m5, m7, m4
+    packssdw    m5, m1
+    CLIPW       m5, m6, m4
 %endif
 %endmacro
 
@@ -166,7 +170,11 @@ DECLARE_REG_TMP 7
 
 %macro BIWEIGHT_PROLOGUE 0
 .prologue:
+%if cpuflag(sse4)
+    PROLOGUE 0,8,7
+%else
     PROLOGUE 0,8,8
+%endif
     movifnidn  r0, r0mp
     movifnidn  r1, r1mp
     movifnidn r2d, r2m

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to