[FFmpeg-devel] Patch: Inline asm fixes for Intel compiler on Windows

Michael Niedermayer michaelni at gmx.at
Mon Mar 17 00:08:11 CET 2014


On Sun, Mar 16, 2014 at 03:10:40PM +1100, Matt Oliver wrote:
> >
> > In the very first patch you seem to have a space at the start of the
> >
> line before "extern"?
> 
> 
> Fixed, thanks.
> 
> And for the CTLD patch: inline asm code is normal strings, there is no
> > point in writing
> > ""CTLD
> > just use
> > CLTD
> 
> 
> Fixed, I knew the double "'s was unnecessary but i initially left them in
> there to make it very clear to other devs that CLTD is string. Of course
> any dev playing round with the asm would probably have worked that out
> anyway so its removed.
> 
> The patches have been rebased again. Recent configure changes moved the way
> items are listed. So now the changes are added to TOOLCHAIN_FEATURES
> instead of HAVE_LIST directly so that its inline with those recent upstream
> modifications (also upstream merge of Diegos "K&R formatting cosmetics"
> necessitated another rebase). And again all of them included together for
> simplicity. Constantly rebasing and fixing merge conflicts is time
> consuming so if there is no interest in this then let me know so I can save
> some effort.

>  libavcodec/x86/cabac.h     |    2 ++
>  libavcodec/x86/constants.h |    2 ++
>  libswscale/x86/rgb2rgb.c   |    7 +++++++
>  3 files changed, 11 insertions(+)
> 912d3c23cb308940b787bf45bef48de2647dbdcc  0001-1-6-Add-missing-external-declarations.patch
> From f0eb0084d6453e08d589019391c1072d1f6b69a5 Mon Sep 17 00:00:00 2001
> From: Matt Oliver <protogonoi at gmail.com>
> Date: Sun, 16 Mar 2014 14:40:53 +1100
> Subject: [PATCH 1/6] [1/6] Add missing external declarations.
> 
> ---
>  libavcodec/x86/cabac.h     | 2 ++
>  libavcodec/x86/constants.h | 2 ++
>  libswscale/x86/rgb2rgb.c   | 7 +++++++
>  3 files changed, 11 insertions(+)
> 
> diff --git a/libavcodec/x86/cabac.h b/libavcodec/x86/cabac.h
> index 781c636..7acda3c 100644
> --- a/libavcodec/x86/cabac.h
> +++ b/libavcodec/x86/cabac.h
> @@ -118,6 +118,8 @@
>  #define TABLES_ARG
>  #define RIP_ARG
>  
> +extern uint8_t ff_h264_cabac_tables[512 + 4*2*64 + 4*64 + 63];
> +
>  #if HAVE_FAST_CMOV
>  #define BRANCHLESS_GET_CABAC_UPDATE(ret, low, range, tmp)\
>          "mov    "tmp"       , %%ecx     \n\t"\

In file included from ffmpeg/libavcodec/cabac_functions.h:42:0,
                 from ffmpeg/libavcodec/cabac.c:33:
ffmpeg/libavcodec/x86/cabac.h:116:16: warning: redundant redeclaration of ‘ff_h264_cabac_tables’ [-Wredundant-decls]
ffmpeg/libavcodec/cabac.h:34:16: note: previous declaration of ‘ff_h264_cabac_tables’ was here


> diff --git a/libavcodec/x86/constants.h b/libavcodec/x86/constants.h
> index 8097bc4..4bf74ff 100644
> --- a/libavcodec/x86/constants.h
> +++ b/libavcodec/x86/constants.h
> @@ -31,6 +31,7 @@ extern const xmm_reg  ff_pw_3;
>  extern const xmm_reg  ff_pw_4;
>  extern const xmm_reg  ff_pw_5;
>  extern const xmm_reg  ff_pw_8;
> +extern const xmm_reg  ff_pw_9;
>  extern const uint64_t ff_pw_15;
>  extern const xmm_reg  ff_pw_16;
>  extern const xmm_reg  ff_pw_18;
> @@ -45,6 +46,7 @@ extern const uint64_t ff_pw_255;
>  
>  extern const xmm_reg  ff_pb_1;
>  extern const xmm_reg  ff_pb_3;
> +extern const xmm_reg  ff_pb_80;
>  extern const xmm_reg  ff_pb_F8;
>  extern const uint64_t ff_pb_FC;
>  
> diff --git a/libswscale/x86/rgb2rgb.c b/libswscale/x86/rgb2rgb.c
> index 8cc99c6..89677d2 100644
> --- a/libswscale/x86/rgb2rgb.c
> +++ b/libswscale/x86/rgb2rgb.c
> @@ -76,6 +76,13 @@ DECLARE_ASM_CONST(8, uint64_t, mul15_mid)    = 0x4200420042004200ULL;
>  DECLARE_ASM_CONST(8, uint64_t, mul15_hi)     = 0x0210021002100210ULL;
>  DECLARE_ASM_CONST(8, uint64_t, mul16_mid)    = 0x2080208020802080ULL;
>  
> +DECLARE_ALIGNED(8, extern const uint64_t, ff_bgr2YOffset);
> +DECLARE_ALIGNED(8, extern const uint64_t, ff_bgr2YCoeff);
> +DECLARE_ALIGNED(8, extern const uint64_t, ff_w1111);

> +DECLARE_ALIGNED(8, extern const uint64_t, ff_bgr2UCoeff);
> +DECLARE_ALIGNED(8, extern const uint64_t, ff_bgr2VCoeff);
> +DECLARE_ALIGNED(8, extern const uint64_t, ff_bgr2UVOffset);

these are unused

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Concerning the gods, I have no means of knowing whether they exist or not
or of what sort they may be, because of the obscurity of the subject, and
the brevity of human life -- Protagoras
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140317/5cccba5a/attachment.asc>


More information about the ffmpeg-devel mailing list