From patchwork Wed Apr 22 17:49:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19173 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 25E6D44B3E1 for ; Wed, 22 Apr 2020 20:57:06 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F248B68BCAE; Wed, 22 Apr 2020 20:57:05 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp11.smtpout.orange.fr [80.12.242.133]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2E2AB68BAFD for ; Wed, 22 Apr 2020 20:56:59 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d22 with ME id VtpN220080PJwDa03tpPaT; Wed, 22 Apr 2020 19:49:23 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Wed, 22 Apr 2020 19:49:23 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Wed, 22 Apr 2020 19:49:14 +0200 Message-Id: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/5] [inline assembly] prepares for contiguous assembly statements merging X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Frédéric Recoules --- libavcodec/x86/inline_asm.h | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/libavcodec/x86/inline_asm.h b/libavcodec/x86/inline_asm.h index 0198746719..6ead73ac33 100644 --- a/libavcodec/x86/inline_asm.h +++ b/libavcodec/x86/inline_asm.h @@ -23,13 +23,15 @@ #include "constants.h" -#define MOVQ_WONE(regd) \ - __asm__ volatile ( \ - "pcmpeqd %%" #regd ", %%" #regd " \n\t" \ - "psrlw $15, %%" #regd ::) +#define MOVQ_WONE_TPL(regd) \ + "pcmpeqd %%"#regd", %%"#regd" \n\t" \ + "psrlw $15, %%" #regd" \n\t" +#define MOVQ_WONE(regd) __asm__ volatile (MOVQ_WONE_TPL(regd) ::) #define JUMPALIGN() __asm__ volatile (".p2align 3"::) -#define MOVQ_ZERO(regd) __asm__ volatile ("pxor %%"#regd", %%"#regd ::) + +#define MOVQ_ZERO_TPL(regd) "pxor %%"#regd", %%"#regd" \n\t" +#define MOVQ_ZERO(regd) __asm__ volatile (MOVQ_ZERO_TPL(regd) ::) #define MOVQ_BFE(regd) \ __asm__ volatile ( \ @@ -37,17 +39,20 @@ "paddb %%"#regd", %%"#regd" \n\t" ::) #ifndef PIC -#define MOVQ_WTWO(regd) __asm__ volatile ("movq %0, %%"#regd" \n\t" :: "m"(ff_pw_2)) +#define MOVQ_WTWO_TPL(regd) "movq %[ff_pw_2], %%"#regd" \n\t" +#define MOVQ_WTWO_IN [ff_pw_2] "m" (ff_pw_2) +#define COMMA_MOVQ_WTWO_IN , MOVQ_WTWO_IN #else // for shared library it's better to use this way for accessing constants // pcmpeqd -> -1 -#define MOVQ_WTWO(regd) \ - __asm__ volatile ( \ - "pcmpeqd %%"#regd", %%"#regd" \n\t" \ - "psrlw $15, %%"#regd" \n\t" \ - "psllw $1, %%"#regd" \n\t"::) - +#define MOVQ_WTWO_TPL(regd) \ + "pcmpeqd %%"#regd", %%"#regd" \n\t" \ + "psrlw $15, %%"#regd" \n\t" \ + "psllw $1, %%"#regd" \n\t" +#define MOVQ_WTWO_IN +#define COMMA_MOVQ_WTWO_IN #endif +#define MOVQ_WTWO(regd) __asm__ volatile (MOVQ_WTWO_TPL(regd) :: MOVQ_WTWO_IN) // using regr as temporary and for the output result // first argument is unmodified and second is trashed From patchwork Wed Apr 22 17:49:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19174 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 29A5944B3E1 for ; Wed, 22 Apr 2020 20:57:07 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 15D8768BCEA; Wed, 22 Apr 2020 20:57:07 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp11.smtpout.orange.fr [80.12.242.133]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3269368BCEA for ; Wed, 22 Apr 2020 20:56:59 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d22 with ME id VtpN220080PJwDa03tpVbA; Wed, 22 Apr 2020 19:49:29 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Wed, 22 Apr 2020 19:49:29 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Wed, 22 Apr 2020 19:49:15 +0200 Message-Id: <20200422174918.7290-2-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/5] [inline assembly] merges contiguous assembly statements X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Frédéric Recoules --- libavcodec/x86/hpeldsp_init.c | 8 ++++++++ libavcodec/x86/rnd_template.c | 14 +++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/libavcodec/x86/hpeldsp_init.c b/libavcodec/x86/hpeldsp_init.c index d89928cec6..c99513035b 100644 --- a/libavcodec/x86/hpeldsp_init.c +++ b/libavcodec/x86/hpeldsp_init.c @@ -95,6 +95,8 @@ void ff_avg_approx_pixels8_xy2_3dnow(uint8_t *block, const uint8_t *pixels, /* MMX no rounding */ #define DEF(x, y) x ## _no_rnd_ ## y ## _mmx #define SET_RND MOVQ_WONE +#define SET_RND_TPL MOVQ_WONE_TPL +#define COMMA_SET_RND_IN #define PAVGBP(a, b, c, d, e, f) PAVGBP_MMX_NO_RND(a, b, c, d, e, f) #define PAVGB(a, b, c, e) PAVGB_MMX_NO_RND(a, b, c, e) #define STATIC static @@ -104,6 +106,8 @@ void ff_avg_approx_pixels8_xy2_3dnow(uint8_t *block, const uint8_t *pixels, #undef DEF #undef SET_RND +#undef SET_RND_TPL +#undef COMMA_SET_RND_IN #undef PAVGBP #undef PAVGB #undef STATIC @@ -121,6 +125,8 @@ CALL_2X_PIXELS(put_no_rnd_pixels16_xy2_mmx, put_no_rnd_pixels8_xy2_mmx, 8) #define DEF(x, y) x ## _ ## y ## _mmx #define SET_RND MOVQ_WTWO +#define SET_RND_TPL MOVQ_WTWO_TPL +#define COMMA_SET_RND_IN COMMA_MOVQ_WTWO_IN #define PAVGBP(a, b, c, d, e, f) PAVGBP_MMX(a, b, c, d, e, f) #define PAVGB(a, b, c, e) PAVGB_MMX(a, b, c, e) @@ -134,6 +140,8 @@ CALL_2X_PIXELS(put_no_rnd_pixels16_xy2_mmx, put_no_rnd_pixels8_xy2_mmx, 8) #undef DEF #undef SET_RND +#undef SET_RND_TPL +#undef COMMA_SET_RND_IN #undef PAVGBP #undef PAVGB diff --git a/libavcodec/x86/rnd_template.c b/libavcodec/x86/rnd_template.c index 09946bd23f..a98fbc10ab 100644 --- a/libavcodec/x86/rnd_template.c +++ b/libavcodec/x86/rnd_template.c @@ -33,9 +33,9 @@ av_unused STATIC void DEF(put, pixels8_xy2)(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) { - MOVQ_ZERO(mm7); - SET_RND(mm6); // =2 for rnd and =1 for no_rnd version __asm__ volatile( + MOVQ_ZERO_TPL(mm7) + SET_RND_TPL(mm6) // =2 for rnd and =1 for no_rnd version "movq (%1), %%mm0 \n\t" "movq 1(%1), %%mm4 \n\t" "movq %%mm0, %%mm1 \n\t" @@ -93,7 +93,7 @@ av_unused STATIC void DEF(put, pixels8_xy2)(uint8_t *block, const uint8_t *pixel "subl $2, %0 \n\t" "jnz 1b \n\t" :"+g"(h), "+S"(pixels) - :"D"(block), "r"((x86_reg)line_size) + :"D"(block), "r"((x86_reg)line_size) COMMA_SET_RND_IN :FF_REG_a, "memory"); } @@ -102,10 +102,10 @@ av_unused STATIC void DEF(put, pixels8_xy2)(uint8_t *block, const uint8_t *pixel av_unused STATIC void DEF(avg, pixels8_xy2)(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) { - MOVQ_ZERO(mm7); - SET_RND(mm6); // =2 for rnd and =1 for no_rnd version __asm__ volatile( - "movq (%1), %%mm0 \n\t" + MOVQ_ZERO_TPL(mm7) + SET_RND_TPL(mm6) // =2 for rnd and =1 for no_rnd version + "movq (%1), %%mm0 \n\t" "movq 1(%1), %%mm4 \n\t" "movq %%mm0, %%mm1 \n\t" "movq %%mm4, %%mm5 \n\t" @@ -170,6 +170,6 @@ av_unused STATIC void DEF(avg, pixels8_xy2)(uint8_t *block, const uint8_t *pixel "subl $2, %0 \n\t" "jnz 1b \n\t" :"+g"(h), "+S"(pixels) - :"D"(block), "r"((x86_reg)line_size) + :"D"(block), "r"((x86_reg)line_size) COMMA_SET_RND_IN :FF_REG_a, "memory"); } From patchwork Wed Apr 22 17:49:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19175 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 563E844B3E1 for ; Wed, 22 Apr 2020 20:57:13 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3E47768BD08; Wed, 22 Apr 2020 20:57:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp11.smtpout.orange.fr [80.12.242.133]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5246568BCFE for ; Wed, 22 Apr 2020 20:57:06 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d22 with ME id VtpN220080PJwDa03tpWbN; Wed, 22 Apr 2020 19:49:31 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Wed, 22 Apr 2020 19:49:31 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Wed, 22 Apr 2020 19:49:16 +0200 Message-Id: <20200422174918.7290-3-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/5] [inline assembly] prepares for mmx clobbers akin to xmm X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Frédéric Recoules --- configure | 4 ++++ libavutil/x86/asm.h | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/configure b/configure index 6533b43250..ddfea5ccfa 100755 --- a/configure +++ b/configure @@ -2275,6 +2275,7 @@ TOOLCHAIN_FEATURES=" symver_gnu_asm vfp_args xform_asm + mmx_clobbers xmm_clobbers " @@ -5917,6 +5918,9 @@ EOF check_inline_asm ebx_available '""::"b"(0)' && check_inline_asm ebx_available '"":::"%ebx"' + # check whether mmx clobbers are supported + check_inline_asm mmx_clobbers '"":::"%mm0"' + # check whether xmm clobbers are supported check_inline_asm xmm_clobbers '"":::"%xmm0"' diff --git a/libavutil/x86/asm.h b/libavutil/x86/asm.h index 9bff42d628..bb3c13f5c1 100644 --- a/libavutil/x86/asm.h +++ b/libavutil/x86/asm.h @@ -79,6 +79,26 @@ typedef int x86_reg; # define BROKEN_RELOCATIONS 1 #endif +/* + * If gcc is not set to support mmx (-mmmx) it will not accept mmx registers + * in the clobber list for inline asm. MMX_CLOBBERS takes a list of mmx + * registers to be marked as clobbered and evaluates to nothing if they are + * not supported, or to the list itself if they are supported. Since a clobber + * list may not be empty, XMM_CLOBBERS_ONLY should be used if the mmx + * registers are the only in the clobber list. + * For example a list with "eax" and "mm0" as clobbers should become: + * : MMX_CLOBBERS("mm0",) "eax" + * and a list with only "mm0" should become: + * MMX_CLOBBERS_ONLY("mm0") + */ +#if HAVE_MMX_CLOBBERS +# define MMX_CLOBBERS(...) __VA_ARGS__ +# define MMX_CLOBBERS_ONLY(...) : __VA_ARGS__ +#else +# define MMX_CLOBBERS(...) +# define MMX_CLOBBERS_ONLY(...) +#endif + /* * If gcc is not set to support sse (-msse) it will not accept xmm registers * in the clobber list for inline asm. XMM_CLOBBERS takes a list of xmm From patchwork Wed Apr 22 17:49:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19172 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 8B01744A2C4 for ; Wed, 22 Apr 2020 20:49:44 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6063468BCF4; Wed, 22 Apr 2020 20:49:44 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp11.smtpout.orange.fr [80.12.242.133]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5DA6C68BC64 for ; Wed, 22 Apr 2020 20:49:38 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d22 with ME id VtpN220080PJwDa03tpXbW; Wed, 22 Apr 2020 19:49:32 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Wed, 22 Apr 2020 19:49:32 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Wed, 22 Apr 2020 19:49:17 +0200 Message-Id: <20200422174918.7290-4-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/5] [inline assembly] add mmx clobbers in 3 statements X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Frédéric Recoules - 1 in lossless_videoencdsp_init.c - 2 in rnd_template.c --- libavcodec/x86/lossless_videoencdsp_init.c | 4 +++- libavcodec/x86/rnd_template.c | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libavcodec/x86/lossless_videoencdsp_init.c b/libavcodec/x86/lossless_videoencdsp_init.c index 40407add52..fb481e66f5 100644 --- a/libavcodec/x86/lossless_videoencdsp_init.c +++ b/libavcodec/x86/lossless_videoencdsp_init.c @@ -70,7 +70,9 @@ static void sub_median_pred_mmxext(uint8_t *dst, const uint8_t *src1, "cmp %4, %0 \n\t" " jb 1b \n\t" : "+r" (i) - : "r" (src1), "r" (src2), "r" (dst), "r" ((x86_reg) w)); + : "r" (src1), "r" (src2), "r" (dst), "r" ((x86_reg) w) + : MMX_CLOBBERS("mm0", "mm1", "mm2", "mm3", "mm4", "mm5") + ); l = *left; lt = *left_top; diff --git a/libavcodec/x86/rnd_template.c b/libavcodec/x86/rnd_template.c index a98fbc10ab..013aa1a645 100644 --- a/libavcodec/x86/rnd_template.c +++ b/libavcodec/x86/rnd_template.c @@ -94,7 +94,9 @@ av_unused STATIC void DEF(put, pixels8_xy2)(uint8_t *block, const uint8_t *pixel "jnz 1b \n\t" :"+g"(h), "+S"(pixels) :"D"(block), "r"((x86_reg)line_size) COMMA_SET_RND_IN - :FF_REG_a, "memory"); + :FF_REG_a, "memory" + MMX_CLOBBERS(, "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7") + ); } // avg_pixels @@ -171,5 +173,7 @@ av_unused STATIC void DEF(avg, pixels8_xy2)(uint8_t *block, const uint8_t *pixel "jnz 1b \n\t" :"+g"(h), "+S"(pixels) :"D"(block), "r"((x86_reg)line_size) COMMA_SET_RND_IN - :FF_REG_a, "memory"); + :FF_REG_a, "memory" + MMX_CLOBBERS(, "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7") + ); } From patchwork Wed Apr 22 17:49:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19179 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:3c87:0:0:0:0:0 with SMTP id j129csp995953yba; Wed, 22 Apr 2020 10:57:36 -0700 (PDT) X-Google-Smtp-Source: APiQypIyC9oovy7u8fjnhI4IU2IDNYCgmVNDyEhBUqRcicxVWGkYQo9iBpxwx4fQhkDuT1sIkOHC X-Received: by 2002:a05:6000:108e:: with SMTP id y14mr266522wrw.292.1587578256372; Wed, 22 Apr 2020 10:57:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587578256; cv=none; d=google.com; s=arc-20160816; b=c75kF1o3jlQqpp4YeVWR4haX+rib6PZuATWQH8p2YIm0hJ80VwiSTAq1Iuvv/fv91x tpWIH6Z15xvsQdznfa71t3fHnas/iuiDoq77i25ZLZkGEvzPqozBtP7t94LFwXF/KHGc d2abecR3FnTeEPv4h8ozL8b2lxAsT6KiERlyO1+BO+nenz5hZNJvAbTzhAm9Ii+ottSX +twRB4rgf+wx3nJNIarbNoXZ7hmKEYQzCyeJRH3zTOrpKBWbTgCVWxZisIBOzFtJgCB8 +mNRsSG/wDCenaiVfAt61TBFtFz1qp4A1N9JknxHM0lxb7wGAV8cRhkSsRyf5VQuwz+n LdFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=Kp8sdQKCkxVUTlDhdS8TLq5ywTG8IaRsOgJ/7vBALZE=; b=xwxZ80LgPx+YmKfvhQQUIxCJowdKxPcpT85HTbEfMfgoJP0Tr+jDVgYB4Vy7Cmpeab miigO62qg9nezptBdSqBO7+t/27BE5CEYYuC38h4N50hddpYnIAKCnWPGLnqu6z5/AwB gefwEvL72/1KM54MhWVS4wZhOZpOTv/N17Zck5Pz3PvEcJrt10rI8ff2lfyqISh7bJTi Wls5xKckcwRQInk0bBlAjIaS/kRQTF5ccU7vQ4ftGY28zWpADhWM0b/5G0s2jbKvqfuS 6vLXn+9crEz31Pg/SNkBj9cJFT6s7Gwt5TdU3CutskJwhKXjiBems6cMRnwF1nNtZ+pP qa1w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id e11si101860wrj.63.2020.04.22.10.57.36; Wed, 22 Apr 2020 10:57:36 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7371E68BD1B; Wed, 22 Apr 2020 20:57:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp11.smtpout.orange.fr [80.12.242.133]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6670968BD10 for ; Wed, 22 Apr 2020 20:57:08 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d22 with ME id VtpN220080PJwDa03tpZbc; Wed, 22 Apr 2020 19:49:33 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Wed, 22 Apr 2020 19:49:33 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Wed, 22 Apr 2020 19:49:18 +0200 Message-Id: <20200422174918.7290-5-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/5] [inline assembly] add memory to sub_median_pred_mmxext X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: EynWmT0YFYU1 Content-Length: 1391 From: Frédéric Recoules --- libavcodec/x86/lossless_videoencdsp_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; From patchwork Sun Apr 26 19:44:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19275 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:3c87:0:0:0:0:0 with SMTP id j129csp2227791yba; Sun, 26 Apr 2020 12:44:58 -0700 (PDT) X-Google-Smtp-Source: APiQypL5S8S/ilfzqQHRSkTmjLBW9tGOD14tJIZOo+ZhGBluwnmSqEw+ocF4XkdRHsdUmdayAs02 X-Received: by 2002:adf:cd0a:: with SMTP id w10mr22944424wrm.404.1587930297989; Sun, 26 Apr 2020 12:44:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587930297; cv=none; d=google.com; s=arc-20160816; b=f1ZgSvFxP3fwYZu2Xnfk4T5k1n36KzVc12iySIx2HV4JAoyvIkvUn8Z12KAMDz4oQq 5nwAXUkholFiqM9ICoQlEXWYwaCBdbHRqrx5yD2RdjwPLcqiApjrMIGuk8KvXwXN6psw dJc1BUt8SwcQ5duLsZLpEsku4mGtiyqb8tR053/46sXMWRy2F6tac8PAubVdsWDhOeY5 2KA/sbjNSMWv9HGdPFJGMik0ht/okJgrxJkPImyuVJpsr6D3B+DUvj4k7TTdRjuKHkSx iOSK+46srqfQdwmTd4xj2HUvuPl6ragkWRkvQRLX/ckjKG0X0QwpWtMydUm3fYUmHV+G 8ozA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=7k1Zc1CNdv+9bCdQkJG8hLGGMcBtcr6TqZi3ksuFfSE=; b=guBZj/wpcWiGDwbRrsR95pLKS0naAgaPESSOkc+OFdoUatWHDLnY2DedsWnyFxrkTq SQauAuUf+6a+ApQ7DA1kw3vZqFrjzm+csKLG/ds499+DGjy2C1ry517feK/Mztv9H7nT +2Wda7ly3TOEPsj070jrgi4fK4oevWP6aDJSc5XgYdg5SrH7ol6diOGgwcyt6neo5aUc +AXEm0ZpPvDpF+COjQOFX8TCViqDWqQvUQYAOUnD32bBAKIInTA780R1CRZmbjswgT7m Md5KAtNqyO4fOiwTkYpZiCa0g17P5IdrXe26We/Cv/mg+y6jAhpOk+fGnLaHqHW30YCL bFwA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y2si13301799wrd.147.2020.04.26.12.44.57; Sun, 26 Apr 2020 12:44:57 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2F5FC68C611; Sun, 26 Apr 2020 22:44:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp03.smtpout.orange.fr [80.12.242.125]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3DB90680505 for ; Sun, 26 Apr 2020 22:44:46 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d50 with ME id XXkk220050PJwDa03XklGZ; Sun, 26 Apr 2020 21:44:45 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Sun, 26 Apr 2020 21:44:45 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Apr 2020 21:44:16 +0200 Message-Id: <20200422174918.7290-6-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 06/14] [inline assembly] add mmx/xmm clobbers in fdct.c X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: QSamyybYULs3 Content-Length: 3388 From: Frédéric Recoules --- libavcodec/x86/fdct.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/libavcodec/x86/fdct.c b/libavcodec/x86/fdct.c index 112566ded0..2635d58cbf 100644 --- a/libavcodec/x86/fdct.c +++ b/libavcodec/x86/fdct.c @@ -288,7 +288,7 @@ TABLE_SSE2 #define S(s) AV_TOSTRING(s) //AV_STRINGIFY is too long -#define FDCT_COL(cpu, mm, mov)\ +#define FDCT_COL(cpu, mm, mov, MM) \ static av_always_inline void fdct_col_##cpu(const int16_t *in, int16_t *out, int offset)\ {\ __asm__ volatile (\ @@ -369,11 +369,13 @@ static av_always_inline void fdct_col_##cpu(const int16_t *in, int16_t *out, int #mov" %%"#mm"3, 112(%3) \n\t" \ : \ : "r" (in + offset), "r" (fdct_tg_all_16), "r" (fdct_one_corr), \ - "r" (out + offset), "r" (ocos_4_16)); \ + "r" (out + offset), "r" (ocos_4_16) \ + MM##_CLOBBERS_ONLY(#mm"0", #mm"1", #mm"2", #mm"3", \ + #mm"4", #mm"5", #mm"6", #mm"7") ); \ } -FDCT_COL(mmx, mm, movq) -FDCT_COL(sse2, xmm, movdqa) +FDCT_COL(mmx, mm, movq, MMX) +FDCT_COL(sse2, xmm, movdqa, XMM) static av_always_inline void fdct_row_sse2(const int16_t *in, int16_t *out) { @@ -484,7 +486,9 @@ static av_always_inline void fdct_row_mmxext(const int16_t *in, int16_t *out, "movq %%mm3, (%3) \n\t" "movq %%mm7, 8(%3) \n\t" : - : "r" (in), "r" (table), "r" (fdct_r_row), "r" (out)); + : "r" (in), "r" (table), "r" (fdct_r_row), "r" (out) + MMX_CLOBBERS_ONLY("%mm0", "%mm1", "%mm2", "%mm3", + "%mm4", "%mm5", "%mm6", "%mm7") ); } static av_always_inline void fdct_row_mmx(const int16_t *in, int16_t *out, const int16_t *table) @@ -535,7 +539,9 @@ static av_always_inline void fdct_row_mmx(const int16_t *in, int16_t *out, const "movq %%mm3, 0(%3) \n\t" "movq %%mm7, 8(%3) \n\t" : - : "r" (in), "r" (table), "r" (fdct_r_row), "r" (out)); + : "r" (in), "r" (table), "r" (fdct_r_row), "r" (out) + MMX_CLOBBERS_ONLY("%mm0", "%mm1", "%mm2", "%mm3", + "%mm4", "%mm5", "%mm6", "%mm7") ); } void ff_fdct_mmx(int16_t *block) From patchwork Sun Apr 26 19:44:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19288 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:3c87:0:0:0:0:0 with SMTP id j129csp2227916yba; Sun, 26 Apr 2020 12:45:08 -0700 (PDT) X-Google-Smtp-Source: APiQypLTd+CkRjYjzGCfoJsTL9XBGiokeVHFbhi3w5DUjrqtYbzKy4ryy+jBZtnA77jn0RgvQmHB X-Received: by 2002:a1c:1dc3:: with SMTP id d186mr22109632wmd.90.1587930308732; Sun, 26 Apr 2020 12:45:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587930308; cv=none; d=google.com; s=arc-20160816; b=wiXtGMZYQTFpPKfL4AnBUVg3u1YFCJJgQlVy/9BaDdVyLfXTz+MJiEkNBRr5zLNsOD 6V7bpeojajBWuJG971k+xgbiaxgTowICvaeas/shNUMoCknCy7g5Z6JtC7mJTWm/QNlo hAwtFLkZxuBxo+qkbzYSn3saClAdEhPvKI0AZiSz6EWHXv3DfF7+CXPfdbOtY9Lo8Wo/ 9j+53PnpEa0YX4nH+ykBwmccF6NpmrCJmc7QzyatMs+IWWngmi4FS80KowRfHmoj5Tz5 OznaFFoEZnsxcrZwXYbjY8EaRX1tB5zoetmOEU6ksvwjlWmTFlxbnkYKVwAziW9ikELx K08g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=QSc8w5NSVBQoD/y6tn2vqKiboC1VIlyQqAqsoB7yCjc=; b=qtfQTX3vBqnniT8G3uCK5DQ9Glke6vUb+oZ2cvWBR9/4NrPuujBjd4PvtFOyYlE1VA +VRf2K+FMXimLR0rJCFl3JuXYmJrDoV8kx389DTInlSAu7K+EMUaZUYf7WYY574WchQk w4X2dKUYJDYA2c4+KqfpdCYZfhMJ8MshvSx7tYshh1Qo7xkGelQIn+bfdx4se/bD/bXA paMT/oGBd3oHwWQQDnoO0twBtuIBr6MjC51w+oxdFubehlfnUGgd8/Qk/1wQiRrPcqwp 2OvCH+CfE9TEvFAjpCROTZ9jrHxvFdtzugxSt7Yw1Fnv4t1Lj2FYBGuGW8RhDPeIglec sDjg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b6si13493289wrm.396.2020.04.26.12.45.08; Sun, 26 Apr 2020 12:45:08 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7C8DE68C69D; Sun, 26 Apr 2020 22:45:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp03.smtpout.orange.fr [80.12.242.125]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 740CF68B6C3 for ; Sun, 26 Apr 2020 22:44:57 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d50 with ME id XXkk220050PJwDa03XkwH4; Sun, 26 Apr 2020 21:44:57 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Sun, 26 Apr 2020 21:44:57 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Apr 2020 21:44:17 +0200 Message-Id: <20200422174918.7290-7-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 Message-Id: <20200422174918.7290-7-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 07/14] [inline assembly] add memory in fdct.c X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: aJl3+v0x/XzZ Content-Length: 3012 From: Frédéric Recoules --- libavcodec/x86/fdct.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/x86/fdct.c b/libavcodec/x86/fdct.c index 2635d58cbf..975e5e7769 100644 --- a/libavcodec/x86/fdct.c +++ b/libavcodec/x86/fdct.c @@ -370,7 +370,7 @@ static av_always_inline void fdct_col_##cpu(const int16_t *in, int16_t *out, int : \ : "r" (in + offset), "r" (fdct_tg_all_16), "r" (fdct_one_corr), \ "r" (out + offset), "r" (ocos_4_16) \ - MM##_CLOBBERS_ONLY(#mm"0", #mm"1", #mm"2", #mm"3", \ + : "memory" MM##_CLOBBERS(, #mm"0", #mm"1", #mm"2", #mm"3", \ #mm"4", #mm"5", #mm"6", #mm"7") ); \ } @@ -437,7 +437,7 @@ static av_always_inline void fdct_row_sse2(const int16_t *in, int16_t *out) : : "r" (in), "r" (tab_frw_01234567_sse2.tab_frw_01234567_sse2), "r" (fdct_r_row_sse2.fdct_r_row_sse2), "i" (SHIFT_FRW_ROW), "r" (out) - XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm2", "%xmm3", + : "memory" XMM_CLOBBERS(, "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7") ); } @@ -487,7 +487,7 @@ static av_always_inline void fdct_row_mmxext(const int16_t *in, int16_t *out, "movq %%mm7, 8(%3) \n\t" : : "r" (in), "r" (table), "r" (fdct_r_row), "r" (out) - MMX_CLOBBERS_ONLY("%mm0", "%mm1", "%mm2", "%mm3", + : "memory" MMX_CLOBBERS(, "%mm0", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5", "%mm6", "%mm7") ); } @@ -540,7 +540,7 @@ static av_always_inline void fdct_row_mmx(const int16_t *in, int16_t *out, const "movq %%mm7, 8(%3) \n\t" : : "r" (in), "r" (table), "r" (fdct_r_row), "r" (out) - MMX_CLOBBERS_ONLY("%mm0", "%mm1", "%mm2", "%mm3", + : "memory" MMX_CLOBBERS(, "%mm0", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5", "%mm6", "%mm7") ); } From patchwork Sun Apr 26 19:44:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19279 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:3c87:0:0:0:0:0 with SMTP id j129csp2228069yba; Sun, 26 Apr 2020 12:45:19 -0700 (PDT) X-Google-Smtp-Source: APiQypInSNLrLADBoGd/fYg+VPfiH4iCs2WOEBv+pGU5pYQS3Pt7YSmXB37lWsWHKB/0LlKtAbpv X-Received: by 2002:a5d:5646:: with SMTP id j6mr24931342wrw.207.1587930319688; Sun, 26 Apr 2020 12:45:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587930319; cv=none; d=google.com; s=arc-20160816; b=DwmfsVKPGcgKiaJeo7KiZacm+O0mBztXNm9IaY19Z3S8oIMliyt0/2aZ3lsRJyK1Cq shJJDdJOusgtt52VfkU0d7c6IwS9OH59X//Ql9LajrrZE6+CKXjfMtFt87Ubwnov0u27 ywklFykCpJ8w+UnbbmvjOmocCkqa5jmfWx42+fcas7oD0+yZ4gBU/QliWLZEdwriWCzg oHqjfX6+Am1yPe8EMjJZiY246uYllSZSxv9Qw6JdU5j7oohC6ianTRR9MwYZVWeiy3hq aX6i+XxI8RSHjoXgnz3z9/zxvAoMigNMw2sQ1gfnTcRklnpVA2b6Cv1IzPfwRVtHEsKK xGKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=sQWQWNqq9g3asC1iFzqvF6DfSeXWasFL+fYIgzKX2yw=; b=paF1LQLlzuLTHGLVRFYe8sJqAdmpwkIxtyB7CrQmWGqSYYtP2C/JGjdUQLlRDupDER 9QQ41KtxXcG7XecDJEebmINP5+z11j9OlniInww4FNfJmx1JTszVAYhFgHkgdXbLpDp1 DSmErSHbZq1q+OKo2IHl5eSy8BdB0orZaSmarlzTovksTQF5QyaZ8LXb5MDtKnkZQBsE wMrvfWp95KNaM4EPk5o4p4+z9sdCjOA1GanL7kJQkwWFC2FT+NTg9zYMYZkFn7Yj5gKD QTfX/a1/dGVqpR3hUD+qCyiZLcPW5xaaKREXlcdu/Hf0OMngxKppCVg/hWv/1HJkDUJB PEfA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id z184si8764124wmg.199.2020.04.26.12.45.19; Sun, 26 Apr 2020 12:45:19 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6996268C6A6; Sun, 26 Apr 2020 22:45:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp03.smtpout.orange.fr [80.12.242.125]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3B2C868C3E1 for ; Sun, 26 Apr 2020 22:45:08 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d50 with ME id XXkk220050PJwDa03Xl7HY; Sun, 26 Apr 2020 21:45:07 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Sun, 26 Apr 2020 21:45:07 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Apr 2020 21:44:18 +0200 Message-Id: <20200422174918.7290-8-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 08/14] [inline assembly] add mmx clobbers to mpegvideoenc X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: CG02pM1LSYhL Content-Length: 8292 From: Frédéric Recoules --- libavcodec/x86/mpegvideoenc_qns_template.c | 12 +++++--- libavcodec/x86/mpegvideoencdsp_init.c | 32 ++++++++++++++++++---- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/libavcodec/x86/mpegvideoenc_qns_template.c b/libavcodec/x86/mpegvideoenc_qns_template.c index 882d486205..96325fd8f8 100644 --- a/libavcodec/x86/mpegvideoenc_qns_template.c +++ b/libavcodec/x86/mpegvideoenc_qns_template.c @@ -39,8 +39,8 @@ static int DEF(try_8x8basis)(int16_t rem[64], int16_t weight[64], int16_t basis[ av_assert2(FFABS(scale) < MAX_ABS); scale<<= 16 + SCALE_OFFSET - BASIS_SHIFT + RECON_SHIFT; - SET_RND(mm6); __asm__ volatile( + SET_RND_TPL(mm6) "pxor %%mm7, %%mm7 \n\t" "movd %4, %%mm5 \n\t" "punpcklwd %%mm5, %%mm5 \n\t" @@ -69,7 +69,9 @@ static int DEF(try_8x8basis)(int16_t rem[64], int16_t weight[64], int16_t basis[ "movd %%mm7, %0 \n\t" : "+r" (i) - : "r"(basis), "r"(rem), "r"(weight), "g"(scale) + : "r"(basis), "r"(rem), "r"(weight), "g"(scale) COMMA_SET_RND_IN + MMX_CLOBBERS_ONLY("mm0", "mm1", "mm5", "mm7" + SET_RND_CLOBBER(, "mm6")) ); return i; } @@ -80,8 +82,8 @@ static void DEF(add_8x8basis)(int16_t rem[64], int16_t basis[64], int scale) if(FFABS(scale) < MAX_ABS){ scale<<= 16 + SCALE_OFFSET - BASIS_SHIFT + RECON_SHIFT; - SET_RND(mm6); __asm__ volatile( + SET_RND_TPL(mm6) "movd %3, %%mm5 \n\t" "punpcklwd %%mm5, %%mm5 \n\t" "punpcklwd %%mm5, %%mm5 \n\t" @@ -99,7 +101,9 @@ static void DEF(add_8x8basis)(int16_t rem[64], int16_t basis[64], int scale) " jb 1b \n\t" : "+r" (i) - : "r"(basis), "r"(rem), "g"(scale) + : "r"(basis), "r"(rem), "g"(scale) COMMA_SET_RND_IN + MMX_CLOBBERS_ONLY("mm0", "mm1", "mm5" + SET_RND_CLOBBER(, "mm6")) ); }else{ for(i=0; i<8*8; i++){ diff --git a/libavcodec/x86/mpegvideoencdsp_init.c b/libavcodec/x86/mpegvideoencdsp_init.c index 532836cec9..8430ec62ea 100644 --- a/libavcodec/x86/mpegvideoencdsp_init.c +++ b/libavcodec/x86/mpegvideoencdsp_init.c @@ -51,17 +51,26 @@ int ff_pix_norm1_sse2(uint8_t *pix, int line_size); "psraw $1, " #y " \n\t" #define DEF(x) x ## _mmx #define SET_RND MOVQ_WONE +#define SET_RND_TPL MOVQ_WONE_TPL +#define COMMA_SET_RND_IN +#define SET_RND_CLOBBER(...) __VA_ARGS__ #define SCALE_OFFSET 1 #include "mpegvideoenc_qns_template.c" #undef DEF #undef SET_RND +#undef SET_RND_TPL +#undef COMMA_SET_RND_IN +#undef SET_RND_CLOBBER #undef SCALE_OFFSET #undef PMULHRW #define DEF(x) x ## _3dnow #define SET_RND(x) +#define SET_RND_TPL(x) +#define COMMA_SET_RND_IN +#define SET_RND_CLOBBER(...) #define SCALE_OFFSET 0 #define PMULHRW(x, y, s, o) \ "pmulhrw " #s ", " #x " \n\t" \ @@ -71,6 +80,9 @@ int ff_pix_norm1_sse2(uint8_t *pix, int line_size); #undef DEF #undef SET_RND +#undef SET_RND_TPL +#undef COMMA_SET_RND_IN +#undef SET_RND_CLOBBER #undef SCALE_OFFSET #undef PMULHRW @@ -78,6 +90,9 @@ int ff_pix_norm1_sse2(uint8_t *pix, int line_size); #undef PHADDD #define DEF(x) x ## _ssse3 #define SET_RND(x) +#define SET_RND_TPL(x) +#define COMMA_SET_RND_IN +#define SET_RND_CLOBBER(...) #define SCALE_OFFSET -1 #define PHADDD(a, t) \ @@ -93,6 +108,9 @@ int ff_pix_norm1_sse2(uint8_t *pix, int line_size); #undef DEF #undef SET_RND +#undef SET_RND_TPL +#undef COMMA_SET_RND_IN +#undef SET_RND_CLOBBER #undef SCALE_OFFSET #undef PMULHRW #undef PHADDD @@ -127,7 +145,8 @@ static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, "jb 1b \n\t" : "+r" (ptr) : "r" ((x86_reg) wrap), "r" ((x86_reg) width), - "r" (ptr + wrap * height)); + "r" (ptr + wrap * height) + MMX_CLOBBERS_ONLY("mm0", "mm1") ); } else if (w == 16) { __asm__ volatile ( "1: \n\t" @@ -148,7 +167,7 @@ static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, "jb 1b \n\t" : "+r"(ptr) : "r"((x86_reg)wrap), "r"((x86_reg)width), "r"(ptr + wrap * height) - ); + MMX_CLOBBERS_ONLY("mm0", "mm1") ); } else { av_assert1(w == 4); __asm__ volatile ( @@ -167,7 +186,8 @@ static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, "jb 1b \n\t" : "+r" (ptr) : "r" ((x86_reg) wrap), "r" ((x86_reg) width), - "r" (ptr + wrap * height)); + "r" (ptr + wrap * height) + MMX_CLOBBERS_ONLY("mm0", "mm1") ); } /* top and bottom (and hopefully also the corners) */ @@ -187,7 +207,8 @@ static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, : "+r" (ptr) : "r" ((x86_reg) buf - (x86_reg) ptr - w), "r" ((x86_reg) - wrap), "r" ((x86_reg) - wrap * 3), - "r" (ptr + width + 2 * w)); + "r" (ptr + width + 2 * w) + MMX_CLOBBERS_ONLY("mm0") ); } } @@ -207,7 +228,8 @@ static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, : "+r" (ptr) : "r" ((x86_reg) last_line - (x86_reg) ptr - w), "r" ((x86_reg) wrap), "r" ((x86_reg) wrap * 3), - "r" (ptr + width + 2 * w)); + "r" (ptr + width + 2 * w) + MMX_CLOBBERS_ONLY("mm0") ); } } } From patchwork Sun Apr 26 19:44:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19281 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:3c87:0:0:0:0:0 with SMTP id j129csp2228210yba; Sun, 26 Apr 2020 12:45:31 -0700 (PDT) X-Google-Smtp-Source: APiQypIZYFJuSepZKzSRMXx9kK1xL9iZxfTxSMaoQFZucZY85FhjjBwylMttQ6/roHD6tlHRElWT X-Received: by 2002:a7b:c7d6:: with SMTP id z22mr23675508wmk.73.1587930330884; Sun, 26 Apr 2020 12:45:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587930330; cv=none; d=google.com; s=arc-20160816; b=julTwKZRsBceM+VZwiJYf/W7wHFc81Xk+epGPT8Uci4PqIRQ/hMoGWgtduGMe7S3Ea G5g0n7SPlj409tJXxj0eGFTFb0A49Gxwwy25Oy6OGPwdbzf3uG9feKMQVP3mC3LfoZCN jiv/TZDO4jR83/m7Zy9URyXaspgM6sSXcaaEt68YNE1PsB20fpxqTSiSn+yiKZ30OC/N 4WlUgzeyzG0DGhv0/6AMF9HRaVrv2K/6dt254Rg6ZBzWMeSYOckgBGJFdT+9NosmcBd6 e8TjggMPNfMQd0sfCQ3hDzhtyil3WG8Slbb/6jgh7eR5TU7cwcKy3U7iWvveEJim2zTQ ZGTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=H0C6uhLaazY/wwRgyTUGGSimElPhr3zBkaKvDTpJLy0=; b=LT5SUS7CGcwj7zq5DtiojlM24hM8LCb5RTvI0Kkrmo4eZ8L+wMMMk/9ZKM2N2GeU2V +PIfVtFuCIrwe4kMTcpSrV0XAcUY38ktYWFapfC41JWhFKmmxxKgCVp8NArKIFB86F/8 WPLvQyo+/tpgck3eg6SsaSH+1aY5HMvUaBfsNZB7Z+ATOVXZWMpYUYtoK8UsZsXM+2k1 a9HWactguWRU6SN/BohpgQEWT47FgJ5y/TGCnHsPH26RpDt7V4HGunWt20xV/D+LqLTM 6N9UgeMdLhShceyKhMxNPNu5+LOkocq6kSG21HbnTtozWOhYDt1AnxqD7FiTLASgp7WD U+Hw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l13si12579731wrn.230.2020.04.26.12.45.30; Sun, 26 Apr 2020 12:45:30 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4A71F68C6AE; Sun, 26 Apr 2020 22:45:17 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp03.smtpout.orange.fr [80.12.242.125]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0859768C6A8 for ; Sun, 26 Apr 2020 22:45:10 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d50 with ME id XXkk220050PJwDa03XlAHg; Sun, 26 Apr 2020 21:45:10 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Sun, 26 Apr 2020 21:45:10 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Apr 2020 21:44:19 +0200 Message-Id: <20200422174918.7290-9-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 09/14] [inline assembly] add memory to mpegvideoenc X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: fkuligYOZVk8 Content-Length: 4851 From: Frédéric Recoules --- libavcodec/x86/mpegvideoenc_qns_template.c | 4 ++-- libavcodec/x86/mpegvideoencdsp_init.c | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libavcodec/x86/mpegvideoenc_qns_template.c b/libavcodec/x86/mpegvideoenc_qns_template.c index 96325fd8f8..f1728de01e 100644 --- a/libavcodec/x86/mpegvideoenc_qns_template.c +++ b/libavcodec/x86/mpegvideoenc_qns_template.c @@ -70,7 +70,7 @@ static int DEF(try_8x8basis)(int16_t rem[64], int16_t weight[64], int16_t basis[ : "+r" (i) : "r"(basis), "r"(rem), "r"(weight), "g"(scale) COMMA_SET_RND_IN - MMX_CLOBBERS_ONLY("mm0", "mm1", "mm5", "mm7" + : "memory" MMX_CLOBBERS(, "mm0", "mm1", "mm5", "mm7" SET_RND_CLOBBER(, "mm6")) ); return i; @@ -102,7 +102,7 @@ static void DEF(add_8x8basis)(int16_t rem[64], int16_t basis[64], int scale) : "+r" (i) : "r"(basis), "r"(rem), "g"(scale) COMMA_SET_RND_IN - MMX_CLOBBERS_ONLY("mm0", "mm1", "mm5" + : "memory" MMX_CLOBBERS(, "mm0", "mm1", "mm5" SET_RND_CLOBBER(, "mm6")) ); }else{ diff --git a/libavcodec/x86/mpegvideoencdsp_init.c b/libavcodec/x86/mpegvideoencdsp_init.c index 8430ec62ea..4914f3a96b 100644 --- a/libavcodec/x86/mpegvideoencdsp_init.c +++ b/libavcodec/x86/mpegvideoencdsp_init.c @@ -146,7 +146,7 @@ static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, : "+r" (ptr) : "r" ((x86_reg) wrap), "r" ((x86_reg) width), "r" (ptr + wrap * height) - MMX_CLOBBERS_ONLY("mm0", "mm1") ); + : "memory" MMX_CLOBBERS(, "mm0", "mm1") ); } else if (w == 16) { __asm__ volatile ( "1: \n\t" @@ -167,7 +167,7 @@ static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, "jb 1b \n\t" : "+r"(ptr) : "r"((x86_reg)wrap), "r"((x86_reg)width), "r"(ptr + wrap * height) - MMX_CLOBBERS_ONLY("mm0", "mm1") ); + : "memory" MMX_CLOBBERS(, "mm0", "mm1") ); } else { av_assert1(w == 4); __asm__ volatile ( @@ -187,7 +187,7 @@ static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, : "+r" (ptr) : "r" ((x86_reg) wrap), "r" ((x86_reg) width), "r" (ptr + wrap * height) - MMX_CLOBBERS_ONLY("mm0", "mm1") ); + : "memory" MMX_CLOBBERS(, "mm0", "mm1") ); } /* top and bottom (and hopefully also the corners) */ @@ -208,7 +208,7 @@ static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, : "r" ((x86_reg) buf - (x86_reg) ptr - w), "r" ((x86_reg) - wrap), "r" ((x86_reg) - wrap * 3), "r" (ptr + width + 2 * w) - MMX_CLOBBERS_ONLY("mm0") ); + : "memory" MMX_CLOBBERS(, "mm0") ); } } @@ -229,7 +229,7 @@ static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, : "r" ((x86_reg) last_line - (x86_reg) ptr - w), "r" ((x86_reg) wrap), "r" ((x86_reg) wrap * 3), "r" (ptr + width + 2 * w) - MMX_CLOBBERS_ONLY("mm0") ); + : "memory" MMX_CLOBBERS(, "mm0") ); } } } From patchwork Sun Apr 26 19:44:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19287 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:3c87:0:0:0:0:0 with SMTP id j129csp2228583yba; Sun, 26 Apr 2020 12:45:58 -0700 (PDT) X-Google-Smtp-Source: APiQypLE9uE4rNgSB6fViROiDyxbqJZgL6lbMJSLTdJJwEg+Qk8bJ1aVIbs+aZ/v+Yox586rbbrN X-Received: by 2002:a5d:4246:: with SMTP id s6mr23697062wrr.421.1587930358236; Sun, 26 Apr 2020 12:45:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587930358; cv=none; d=google.com; s=arc-20160816; b=nES4PZiWnYNm8ugzPKhPcjeE1xd3hyRamNi3i985Yc0CrR6h9gjfGMEA45yhvODVZJ pWQnCPzMkM5tXEv5rXVB13iGR0KJZjIpZqfMsJ/Lf9gD/9QIz9r7UY8DBUBs8LrlaCNS UnJsXI7am2U/4qYaB72uUHIuXzfPbeGismKnzY7fgRLLoIXBXwmWh8EQXOIa/09ZxsSO SbnGfdV3VoR3Tv6fj2p91XMuv1roo/Bsn5A0NruTxs7nyPDFUehxLzGrSix3Q0bpXHTP gaqDmTFEg4nWhCX74qVab5/EMUGJgZ7z3InbjSs6SrKNz6ZPGQUFOl3nvKsXDD//M+Eu lWXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=0ndOWhfFGjBciiEqkdtPy4PsWLf30im0fGDyxgd9sG0=; b=SxpfNVW+swGgJx2Iw/QZKh3uotKfOJqvAHo/r+twvktjiHtKP/MI0X92ar7abgKdcG VKbuVNGYe7GvE+Vfzt7H3V6pE5WxsJ50a9SQ24NOzZYnN6WwaoPoJaUEYZsytG2XfsGZ B0dn3jiAf852SKBkeDzb0Mz+dZG2djboG+Ov3Y/ktLv4IwoA1Mkebod3oMQeW1UQtFGc JjVVFES73Wx5UHnhB1yQWAwSzqSim5vvZ/9uWOLj09Vq7WEOO374VyGp+v9PLBX0Pgq9 /dnpymxNo2vLKBMtih5SN09M4LbA1HB0ljBI3ODd5tJOha4S1Oauiq8ALHjKOW7BY0vF ze5w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id i24si8855000wml.195.2020.04.26.12.45.57; Sun, 26 Apr 2020 12:45:58 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0F4BC68C6A1; Sun, 26 Apr 2020 22:45:24 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp03.smtpout.orange.fr [80.12.242.125]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 98E6B68C3E1 for ; Sun, 26 Apr 2020 22:45:13 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d50 with ME id XXkk220050PJwDa03XlDHn; Sun, 26 Apr 2020 21:45:13 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Sun, 26 Apr 2020 21:45:13 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Apr 2020 21:44:20 +0200 Message-Id: <20200422174918.7290-10-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 10/14] [inline assembly] add xmm clobbers to mpegaudiodsp X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: shBZlM814b/k Content-Length: 2225 From: Frédéric Recoules --- libavcodec/x86/mpegaudiodsp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/x86/mpegaudiodsp.c b/libavcodec/x86/mpegaudiodsp.c index f46a5c4f3d..10b9e814d5 100644 --- a/libavcodec/x86/mpegaudiodsp.c +++ b/libavcodec/x86/mpegaudiodsp.c @@ -103,6 +103,7 @@ static void apply_window(const float *buf, const float *win1, "jl 1b \n\t" :"+&r"(count) :"r"(win1a), "r"(win2a), "r"(bufa), "r"(sum1a), "r"(sum2a) + XMM_CLOBBERS_ONLY("xmm0", "xmm1", "xmm2", "xmm4") ); #undef MULT @@ -137,7 +138,7 @@ static void apply_window_mp3(float *in, float *win, int *unused, float *out, "movaps %%xmm2, 96(%1) \n\t" \ "movaps %%xmm3, 112(%1) \n\t" ::"r"(in), "r"(in+512) - :"memory" + :"memory" XMM_CLOBBERS(, "xmm0", "xmm1", "xmm2", "xmm3") ); apply_window(in + 16, win , win + 512, suma, sumc, 16); @@ -169,7 +170,7 @@ static void apply_window_mp3(float *in, float *win, int *unused, float *out, :"+&r"(out) :"r"(&suma[0]), "r"(&sumb[0]), "r"(&sumc[0]), "r"(&sumd[0]) - :"memory" + :"memory" XMM_CLOBBERS(, "xmm0") ); out += 16*incr; } else { From patchwork Sun Apr 26 19:44:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19277 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:3c87:0:0:0:0:0 with SMTP id j129csp2228816yba; Sun, 26 Apr 2020 12:46:16 -0700 (PDT) X-Google-Smtp-Source: APiQypLTp8aZ9SVLKnFS2zsnT7jvzWvEpaMrUwsmT46A3Ar5041FJzogz1ZBre+1jUdE/EP8vziP X-Received: by 2002:adf:e4c5:: with SMTP id v5mr24764253wrm.143.1587930376693; Sun, 26 Apr 2020 12:46:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587930376; cv=none; d=google.com; s=arc-20160816; b=muXRIcNSXyEDtZPEkI5fjEZMiHy5toV2LsFIokqu0MCkqB2Oa8kqyj5SG42hjfqzbU h4leE+TLb2aBdqty8lSpTVFYrBYiuDONNIIE5l+lig9r6Vnuk6wFiUg+i+5VuYIAIr95 GvQij5mwbq9Nect6gXfYU98WwAIMmehYMp0RjFLR2TKV3vilxof9bp5zDPHNcICocXR4 4TWEZzD7rg9m6SoBY9p2KrlUcqDwTwQMqwEGRe1GVt+SztRBpPC+prUItBDMctcIh8es 3jsZSbuqCJSUWLA1723EwXgmVQ8bP1pHhk83T2TKpvRgv5XQ0gDhsMXEKQK3wo2nQtOH fCnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=fiE9oEiFMQHLhRxUrARymlX5Y+1+UCeS/yLITGT0yN4=; b=b56AidjphPwhVmth5/yVljW2NiTXUBnzsYT07cu38HN5z8pHXxjzWWUp1zMRi4UfEF qnWLrjQBErwc+ZOX71vLPDKgCOKX00q377vfhu8P+6oWchbw/u3Rw/lRJuia8PHVxPNi VK2+z3s+7tRiW6NTfl8HGNiQ5YrnWi0AUH+FKab1q7oiFSIhb/ZFoLki/EykxpiymHZe nFQyZIq/P2GdfDYgH6Y6izZEu0DB3yPw3evidtRowYyxO742F+VIM3CFWQOgKJF3o8iG AIlTsC/3cF6nxsI72m7Y/LomaSfJcsn+fKfdehZtc4Wtik/c7LOOPG2cM4/bWg+WQX5p uZ7A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y7si12190971wrs.137.2020.04.26.12.46.16; Sun, 26 Apr 2020 12:46:16 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8829F68C6D7; Sun, 26 Apr 2020 22:45:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp03.smtpout.orange.fr [80.12.242.125]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5FB2E68C6B2 for ; Sun, 26 Apr 2020 22:45:15 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d50 with ME id XXkk220050PJwDa03XlEHv; Sun, 26 Apr 2020 21:45:14 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Sun, 26 Apr 2020 21:45:14 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Apr 2020 21:44:21 +0200 Message-Id: <20200422174918.7290-11-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 11/14] [inline assembly] add memory to mpegaudiodsp X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 1shjfl3VYRQm Content-Length: 1326 From: Frédéric Recoules --- libavcodec/x86/mpegaudiodsp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/x86/mpegaudiodsp.c b/libavcodec/x86/mpegaudiodsp.c index 10b9e814d5..83457dfbb3 100644 --- a/libavcodec/x86/mpegaudiodsp.c +++ b/libavcodec/x86/mpegaudiodsp.c @@ -103,7 +103,7 @@ static void apply_window(const float *buf, const float *win1, "jl 1b \n\t" :"+&r"(count) :"r"(win1a), "r"(win2a), "r"(bufa), "r"(sum1a), "r"(sum2a) - XMM_CLOBBERS_ONLY("xmm0", "xmm1", "xmm2", "xmm4") + :"memory" XMM_CLOBBERS(, "xmm0", "xmm1", "xmm2", "xmm4") ); #undef MULT From patchwork Sun Apr 26 19:44:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19285 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:3c87:0:0:0:0:0 with SMTP id j129csp2228359yba; Sun, 26 Apr 2020 12:45:40 -0700 (PDT) X-Google-Smtp-Source: APiQypLxJud+gEFnvInBfaafSBZnBH3cbU03upEB5UsIJW0XEYu6h8IBuirHupjwibaEiHLsheY7 X-Received: by 2002:a5d:420d:: with SMTP id n13mr25619124wrq.204.1587930340621; Sun, 26 Apr 2020 12:45:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587930340; cv=none; d=google.com; s=arc-20160816; b=U3NBa71LR4VuqVuXnb5pVlDPJr/e9wLzM6MZf7YjS9T4LUaDxyJ04ccc5bRJkTZAFM 8znnvzfC7VisoejINt9zj7exD/pw5NzGlbthPbE7dlRzkyRLnaKmnY/6wB5akPGbbIUZ WhT8vWJ38q85yML9mNOlORjCOo+zGbGQkGvrng+WuLMJl8xWCcy8Zh/jIoSx/uqyPxZp yubvphAgS/1LU8de26y+ls2VshC7KNGctrNCdj4un5CVngaw0qs/PjFboRWOr64dRrrw ys+Kv1G2rElDZkD4ZtrXDuP0KSvUw7IP+kwlh6nDxXs0vcbIXLJ3AbCOQNZ8k2h6mZPv lqIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=cClxanpKD3PzcbzkKA6/3ayUTtV4ItcuYyBAoGVjDBs=; b=y9KVKDDyh0lZEAND47eSfqjdM8FTy7i3kVY/5KO5WWdHdtslS1UBAca7hM2xIkezsb HoZvPcRqiEn0VH4W1bIiXafkCPC4kEjRykrWfot1VBMziELkuWGPjANV7vP6kNrbWraE yPYPcYaBufuNfbI+tSkasT9musLczOLhvcxVXl6SmNp3Mu/uyXaAu0RgQ8DTPHVRNGGM Lxo6AI3COzUBV7ytAf6OJUNL/xLShgxqWQtO25+WY36FNsBWLun95ZvUjJzVuWpB2UdU kgRtE2Y+msz23RHEsLuErZHzZZxhMjTRWP6ftRurlKTeCVrjxqSQa4fg/ZC3WVCO1CgL i6Wg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a73si8797332wme.161.2020.04.26.12.45.39; Sun, 26 Apr 2020 12:45:40 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 149C168C6BC; Sun, 26 Apr 2020 22:45:20 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp03.smtpout.orange.fr [80.12.242.125]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 84A3968C6AF for ; Sun, 26 Apr 2020 22:45:16 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d50 with ME id XXkk220050PJwDa03XlGJ0; Sun, 26 Apr 2020 21:45:16 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Sun, 26 Apr 2020 21:45:16 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Apr 2020 21:44:22 +0200 Message-Id: <20200422174918.7290-12-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 12/14] [inline assembly] add xmm clobbers to lpc X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: P3dVZ4fk+ju2 Content-Length: 1808 From: Frédéric Recoules --- libavcodec/x86/lpc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/x86/lpc.c b/libavcodec/x86/lpc.c index 6c72e21bac..6789027277 100644 --- a/libavcodec/x86/lpc.c +++ b/libavcodec/x86/lpc.c @@ -118,7 +118,8 @@ static void lpc_compute_autocorr_sse2(const double *data, int len, int lag, :"+&r"(i) :"r"(autoc+j), "r"(data+len), "r"(data+len-j) NAMED_CONSTRAINTS_ARRAY_ADD(pd_1) - :"memory" + :"memory" XMM_CLOBBERS(, "%xmm0", "%xmm1", "%xmm2", + "%xmm3", "%xmm4", "%xmm5") ); } else { __asm__ volatile( @@ -142,6 +143,7 @@ static void lpc_compute_autocorr_sse2(const double *data, int len, int lag, :"+&r"(i), "=m"(autoc[j]), "=m"(autoc[j+1]) :"r"(data+len), "r"(data+len-j) NAMED_CONSTRAINTS_ARRAY_ADD(pd_1) + XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm3", "%xmm4") ); } } From patchwork Sun Apr 26 19:44:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19286 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:3c87:0:0:0:0:0 with SMTP id j129csp2228417yba; Sun, 26 Apr 2020 12:45:46 -0700 (PDT) X-Google-Smtp-Source: APiQypLX+T8Pq15NILZ/Ejh/exh7rNHyvpyx6FJUDzvOLoMx8sKoGAs9zi8fzktdjSHwP5Lhq2O1 X-Received: by 2002:a1c:1c8:: with SMTP id 191mr21131186wmb.37.1587930345923; Sun, 26 Apr 2020 12:45:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587930345; cv=none; d=google.com; s=arc-20160816; b=eVwByj6dO99avCig9q4UGYJRfsvO7UHZUg27KH8lnBGkcndB/ufXF7igzve7Nqd9jv zb1vOBwW/12m7DIA2R4+nm5DpGAC2I7JurpKaJMViW6NMLXDGDrZLu/d2U0pc/gh0myE YXT53Zjbxy16E3P9ZrIADtvrM99izHOKPvQ1nXR8qFD51T+bf1w/eu129UGq+56tEPk7 0wX7VkUMxs9xiI68SYp5+/XCzhUU0GgJp0Y+RWt6bJLcNS18TBbkZoR2OgyoAYGflXY7 S2VFgJspOp4tE3+9Xqf/46X8KeN/1WVVlex2V5NhC8/VG9voLke8qyT2wcpOmlmzaj/M pF0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=d+g+sUK6TeAkEMdWuuW/E34iBYQSAxQ6Vr83uUvYaTo=; b=TUfWd7IeT/dEAy4/vzupkPEA3zXEpBQzWHZxlyrS0dcP1Op+FcWf///Ql8Hg+L1vQH IOGwOd3XwRVAMnJZN31kv41aBGuGWPpsIWwnkJ5eMnYd32SX4LfqYSJ8EiraQ+vPCKv/ JxpyWahrE9j8/zYae+OTMJUkDOU0lodRsltzkvFSeOrgggYeAwvhvo5AQ1dvYzRmMBjs ifylsdc7VgF/DTJJJRYXI5NchwhzYpSLbc5rkqkJbYWLiqyT2sh3tTtIK1Va9nU06jIW xltGd5vRURN1kgepA6kHr9utQYAKauLgSpKxt4GE29lopn98AKLCwyLFi0JN8cNVWGfv Wxcw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id d16si9182460wmd.35.2020.04.26.12.45.45; Sun, 26 Apr 2020 12:45:45 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 846E268C6BF; Sun, 26 Apr 2020 22:45:20 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp03.smtpout.orange.fr [80.12.242.125]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F1ADE68C6AF for ; Sun, 26 Apr 2020 22:45:17 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d50 with ME id XXkk220050PJwDa03XlHJ8; Sun, 26 Apr 2020 21:45:17 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Sun, 26 Apr 2020 21:45:17 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Apr 2020 21:44:23 +0200 Message-Id: <20200422174918.7290-13-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 13/14] [inline assembly] add memory to lpc X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: JNHLLlQ0kvVy Content-Length: 1905 From: Frédéric Recoules --- libavcodec/x86/lpc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/x86/lpc.c b/libavcodec/x86/lpc.c index 6789027277..0b32bd1bf1 100644 --- a/libavcodec/x86/lpc.c +++ b/libavcodec/x86/lpc.c @@ -73,7 +73,7 @@ static void lpc_apply_welch_window_sse2(const int32_t *data, int len, :"+&r"(i), "+&r"(j) :"r"(w_data+n2), "r"(data+n2), "m"(c), "r"(len) NAMED_CONSTRAINTS_ARRAY_ADD(pd_1,pd_2) - XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm2", "%xmm3", + :"memory" XMM_CLOBBERS(, "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm5", "%xmm6", "%xmm7") ); #undef WELCH @@ -143,7 +143,7 @@ static void lpc_compute_autocorr_sse2(const double *data, int len, int lag, :"+&r"(i), "=m"(autoc[j]), "=m"(autoc[j+1]) :"r"(data+len), "r"(data+len-j) NAMED_CONSTRAINTS_ARRAY_ADD(pd_1) - XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm3", "%xmm4") + :"memory" XMM_CLOBBERS(, "%xmm0", "%xmm1", "%xmm3", "%xmm4") ); } } From patchwork Sun Apr 26 19:44:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?FR=C3=89D=C3=89RIC_RECOULES?= X-Patchwork-Id: 19284 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:3c87:0:0:0:0:0 with SMTP id j129csp2228668yba; Sun, 26 Apr 2020 12:46:04 -0700 (PDT) X-Google-Smtp-Source: APiQypKvvKEVifQNmUwoiiy13ptJZHgtwJxWHb5Ll2qQfAld74aMdhj4jPA1PuJgr6AfXQdMu8vD X-Received: by 2002:a5d:4b43:: with SMTP id w3mr23755403wrs.208.1587930364388; Sun, 26 Apr 2020 12:46:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587930364; cv=none; d=google.com; s=arc-20160816; b=XprxzvEOkiCg9Q/RFmOWKqfjLKKwSal6k9wFQ91IkxY+BjUfa3Ao5dHQ9P/jKHxZfi M5mApOS6ELIUbaBPPr6foawnlliJVrqbfQqtyTYz9e7Marh49QhtSMD9WbjjdKYleX4v kaYs//OJI4uNzymDCKqpg8pier4afSwTEbRl03e4bosMawFJE0L50RjjfEp/3m+nYh+8 nf877X7/50Xt6TN0bAd6nhtSg5e2EJvJSuE/IMVzRV7NhX9H2o2SDsajv3B9RGHk15KJ 48SmXHUVfqOy+ykFa+DucDymQpw6eDgZB1IS9zxMq/iCRLEqCRPEkWJ4TEyMf7JN/nuz 8gSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=7jvzfr/rIK98bdF+wgsU5pyftqVdc9TFFQxZqoxYDDw=; b=DM0h2GKf9GkFb4GH3uU5zkeQvSPr41B+gyzkAr9xxh7PfBfZNM1fKZOx59E9QeykFK 1K+ejiIiEF3quktj3zb+/z8KlUmR5h9ecSPliygq2FV+rpCk4l7MWhcMRmQHvdXmGMHm dNpey5Xb6HbatlRufAd2nlafwh/aj6ic1dLtd6NdnXCfvEXG5jXkwm1pWMch82HOF23c 7ouEm3gJp+DCwDN2vOL/cfHv63gFBigVZVcbFcvwqKXCDc/PDCGXeBshFHGcGxgX+tUV xn9aZSd7LOdc4pIILKAaNI+OfHdfriJOSJ3PQVr9aR/r2aIvYPpAsk6NzFPfZ7t22WRf DwHA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id z138si8873399wmc.193.2020.04.26.12.46.04; Sun, 26 Apr 2020 12:46:04 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 72C5868C6CE; Sun, 26 Apr 2020 22:45:24 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp.smtpout.orange.fr (smtp03.smtpout.orange.fr [80.12.242.125]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D80B368C6BB for ; Sun, 26 Apr 2020 22:45:19 +0300 (EEST) Received: from is232189.intra.cea.fr ([46.193.2.18]) by mwinf5d50 with ME id XXkk220050PJwDa03XlJJE; Sun, 26 Apr 2020 21:45:19 +0200 X-ME-Helo: is232189.intra.cea.fr X-ME-Auth: ZnJlZGVyaWMucmVjb3VsZXNAb3JhbmdlLmZy X-ME-Date: Sun, 26 Apr 2020 21:45:19 +0200 X-ME-IP: 46.193.2.18 From: frederic.recoules@univ-grenoble-alpes.fr To: ffmpeg-devel@ffmpeg.org Date: Sun, 26 Apr 2020 21:44:24 +0200 Message-Id: <20200422174918.7290-14-frederic.recoules@univ-grenoble-alpes.fr> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> References: <20200422174918.7290-1-frederic.recoules@univ-grenoble-alpes.fr> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 14/14] [inline assembly] add mmx clobbers to cavsdsp X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Fr=C3=A9d=C3=A9ric_Recoules?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: PKffMEh7z8uk Content-Length: 2464 From: Frédéric Recoules --- 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")\ );\ }\ \