OSDN Git Service

fmtconvert: fix int32_to_float_fmul_scalar() for windows x86_64
authorJustin Ruggles <justin.ruggles@gmail.com>
Tue, 1 Nov 2011 20:57:41 +0000 (16:57 -0400)
committerJustin Ruggles <justin.ruggles@gmail.com>
Thu, 3 Nov 2011 01:44:58 +0000 (21:44 -0400)
The calling convention only allows 4 non-stack parameter, with each
float or int register being skipped if not used.

fixes Bug 64

libavcodec/x86/fmtconvert.asm

index 8549548..d621089 100644 (file)
@@ -28,10 +28,14 @@ SECTION_TEXT
 ; void int32_to_float_fmul_scalar(float *dst, const int *src, float mul, int len);
 ;---------------------------------------------------------------------------------
 %macro INT32_TO_FLOAT_FMUL_SCALAR 2
-%ifdef ARCH_X86_64
+%ifdef UNIX64
 cglobal int32_to_float_fmul_scalar_%1, 3,3,%2, dst, src, len
 %else
 cglobal int32_to_float_fmul_scalar_%1, 4,4,%2, dst, src, mul, len
+%endif
+%ifdef WIN64
+    SWAP 0, 2
+%elifdef ARCH_X86_32
     movss   m0, mulm
 %endif
     SPLATD  m0