[FFmpeg-devel] [PATCH 14/14] [inline assembly] add mmx clobbers to cavsdsp

FRÉDÉRIC RECOULES frederic.recoules at univ-grenoble-alpes.fr
Thu Jul 23 17:00:35 EEST 2020


Hi, 

I just realized that I have been unsubscribed from the mailing list (is there a inactivity timeout?).
Thus, I do not know if there was some news about the review of the submitted patches. 
Yet, I could well imagine that some conflicts have appeared since the submission in May, so if it is the case, let me know it and I will try to update them. 

For memory, the patches try to harmonize the interface of inline assembly chunks because for some of them, the compiler miss information (like clobbers) such that it could take advantage of it to produce wrong code. The patches help to avoid unexpected behaviours which may depend on the compiler or the optimization level. 

I am looking forward to hearing from you, 

Regards, 
Frédéric Recoules 

----- Mail original ----- 
De: "FRÉDÉRIC RECOULES" <frederic.recoules at univ-grenoble-alpes.fr> 
À: "ffmpeg-devel" <ffmpeg-devel at ffmpeg.org> 
Cc: "michael" <michael at niedermayer.cc>, "frederic recoules" <frederic.recoules at orange.fr> 
Envoyé: Lundi 4 Mai 2020 21:52:44 
Objet: Re: [FFmpeg-devel] [PATCH 14/14] [inline assembly] add mmx clobbers to cavsdsp 

Hi Michael, 

I would like an update on the review process. 

The patches add missing clobbers (mmx, xmm and memory) to some assembly chunks. 
Note that looking at the commit history, some other chunks have already been patched in such a way by the past. 
Moreover, as far as I know, the patches from 1 to 14 passed the fate tests, both on my computer and on patchwork. 
Let me know if you have any remark on them. 

By the way, I have a deadline that comes and I would really appreciate to see the patches applied by wednesday night. Do you think it would be possible? 


Regards, 
Frédéric 


De: "frederic recoules" <frederic.recoules at univ-grenoble-alpes.fr> 
À: "ffmpeg-devel" <ffmpeg-devel at ffmpeg.org> 
Cc: "frederic recoules" <frederic.recoules at orange.fr> 
Envoyé: Dimanche 26 Avril 2020 21:44:24 
Objet: [FFmpeg-devel] [PATCH 14/14] [inline assembly] add mmx clobbers to cavsdsp 

From: Frédéric Recoules <frederic.recoules at orange.fr> 

--- 
libavcodec/x86/cavsdsp.c | 9 ++++++--- 
1 file changed, 6 insertions(+), 3 deletions(-) 

diff --git a/libavcodec/x86/cavsdsp.c b/libavcodec/x86/cavsdsp.c 
index becb3a4808..b1b2c7b069 100644 
--- a/libavcodec/x86/cavsdsp.c 
+++ b/libavcodec/x86/cavsdsp.c 
@@ -166,7 +166,8 @@ static void cavs_idct8_add_sse2(uint8_t *dst, int16_t *block, ptrdiff_t stride) 
: "+a"(src), "+c"(dst)\ 
: "S"((x86_reg)srcStride), "r"((x86_reg)dstStride)\ 
NAMED_CONSTRAINTS_ADD(ADD,MUL1,MUL2)\ 
- : "memory"\ 
+ : "memory" MMX_CLOBBERS(, "mm0", "mm1", "mm2", "mm3",\ 
+ "mm4", "mm5", "mm6", "mm7") \ 
);\ 
if(h==16){\ 
__asm__ volatile(\ 
@@ -182,7 +183,8 @@ static void cavs_idct8_add_sse2(uint8_t *dst, int16_t *block, ptrdiff_t stride) 
: "+a"(src), "+c"(dst)\ 
: "S"((x86_reg)srcStride), "r"((x86_reg)dstStride)\ 
NAMED_CONSTRAINTS_ADD(ADD,MUL1,MUL2)\ 
- : "memory"\ 
+ : "memory" MMX_CLOBBERS(, "mm0", "mm1", "mm2", "mm3",\ 
+ "mm4", "mm5", "mm6", "mm7") \ 
);\ 
}\ 
src += 4-(h+5)*srcStride;\ 
@@ -235,7 +237,8 @@ static void OPNAME ## cavs_qpel8_h_ ## MMX(uint8_t *dst, const uint8_t *src, ptr 
: "+a"(src), "+c"(dst), "+m"(h)\ 
: "d"((x86_reg)srcStride), "S"((x86_reg)dstStride)\ 
NAMED_CONSTRAINTS_ADD(ff_pw_4,ff_pw_5)\ 
- : "memory"\ 
+ : "memory" MMX_CLOBBERS(, "mm0", "mm1", "mm2", "mm3",\ 
+ "mm4", "mm5", "mm6", "mm7")\ 
);\ 
}\ 
\ 
-- 
2.17.1 

_______________________________________________ 
ffmpeg-devel mailing list 
ffmpeg-devel at ffmpeg.org 
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel 

To unsubscribe, visit link above, or email 
ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe". 
_______________________________________________ 
ffmpeg-devel mailing list 
ffmpeg-devel at ffmpeg.org 
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel 

To unsubscribe, visit link above, or email 
ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe". 



More information about the ffmpeg-devel mailing list