diff mbox series

[FFmpeg-devel,5/5,inline,assembly] add memory to sub_median_pred_mmxext

Message ID 20200422174918.7290-5-frederic.recoules@univ-grenoble-alpes.fr
State New
Headers show
Series [FFmpeg-devel,1/5,inline,assembly] prepares for contiguous assembly statements merging
Related show

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

FRÉDÉRIC RECOULES April 22, 2020, 5:49 p.m. UTC
From: Frédéric Recoules <frederic.recoules@orange.fr>

---
 libavcodec/x86/lossless_videoencdsp_init.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

FRÉDÉRIC RECOULES May 4, 2020, 7:52 p.m. UTC | #1
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@univ-grenoble-alpes.fr> 
À: "ffmpeg-devel" <ffmpeg-devel@ffmpeg.org> 
Cc: "frederic recoules" <frederic.recoules@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@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")\ 
);\ 
}\ 
\
diff mbox series

Patch

diff --git a/libavcodec/x86/lossless_videoencdsp_init.c b/libavcodec/x86/lossless_videoencdsp_init.c
index fb481e66f5..feb6874f94 100644
--- a/libavcodec/x86/lossless_videoencdsp_init.c
+++ b/libavcodec/x86/lossless_videoencdsp_init.c
@@ -71,7 +71,7 @@  static void sub_median_pred_mmxext(uint8_t *dst, const uint8_t *src1,
         " jb 1b                         \n\t"
         : "+r" (i)
         : "r" (src1), "r" (src2), "r" (dst), "r" ((x86_reg) w)
-	: MMX_CLOBBERS("mm0", "mm1", "mm2", "mm3", "mm4", "mm5")
+	: MMX_CLOBBERS("mm0", "mm1", "mm2", "mm3", "mm4", "mm5",) "memory"
 	);
 
     l  = *left;