[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