[FFmpeg-devel] [PATCH] Fix compilation with 64-bit MinGW

Måns Rullgård mans
Sun Oct 19 18:52:58 CEST 2008


Reimar D?ffinger <Reimar.Doeffinger at stud.uni-karlsruhe.de> writes:

> Hello,
> the float_to_int stuff still uses long instead of x86_reg, so
> compilation fails with MinGW64.
> Attached patch fixes it. It might add one more chance for gcc
> to mess up the code, but I doubt it is worth bothering, even the
> worst gcc can do should be hidden even by the function call overhead ;-).
> I doubt the alternative of e.g. changing the function prototype
> to use x86_reg is a good idea.
>
> Greetings,
> Reimar D?ffinger
>
> Index: libavcodec/i386/dsputil_mmx.c
> ===================================================================
> --- libavcodec/i386/dsputil_mmx.c	(revision 15647)
> +++ libavcodec/i386/dsputil_mmx.c	(working copy)
> @@ -2239,6 +2239,7 @@
>  }
>
>  static void float_to_int16_3dnow(int16_t *dst, const float *src, long len){
> +    x86_reg reglen = len;
>      // not bit-exact: pf2id uses different rounding than C and SSE
>      __asm__ volatile(
>          "add        %0          , %0        \n\t"
> @@ -2257,10 +2258,11 @@
>          "add        $16         , %0        \n\t"
>          " js 1b                             \n\t"
>          "femms                              \n\t"
> -        :"+r"(len), "+r"(dst), "+r"(src)
> +        :"+r"(reglen), "+r"(dst), "+r"(src)

Why not "+r"((x86_reg)len)?

-- 
M?ns Rullg?rd
mans at mansr.com




More information about the ffmpeg-devel mailing list