On Mon, Apr 1, 2019 at 4:59 PM James Almer <jamr...@gmail.com> wrote: > > On 4/1/2019 9:13 AM, Lynne wrote: > > Mar 31, 2019, 11:49 PM by jamr...@gmail.com: > > > >> A float ret value needs to be in xmm0, and you swapped m0 with m2 on > >> Win64. This is the source of the fate failure. > >> > > Attached a patch to fix this. > > > >> %if WIN64 > >> - SWAP 0, 2 > >> -%endif > >> + shufps m0, m2, 0 > >> +%else > >> shufps m0, m0, 0 > >> +%endif > >> %endif > > > > 0001-x86-opusdsp-fix-WIN64-return-value.patch > > > > From 98e93b6f322a2a9dee7499fe87b74cf50a33b022 Mon Sep 17 00:00:00 2001 > > From: Lynne <d...@lynne.ee> > > Date: Mon, 1 Apr 2019 13:06:34 +0100 > > Subject: [PATCH] x86/opusdsp: fix WIN64 return value > > > > --- > > libavcodec/x86/opusdsp.asm | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/libavcodec/x86/opusdsp.asm b/libavcodec/x86/opusdsp.asm > > index ed65614e06..a7bff4f0b3 100644 > > --- a/libavcodec/x86/opusdsp.asm > > +++ b/libavcodec/x86/opusdsp.asm > > @@ -40,9 +40,10 @@ cglobal opus_deemphasis, 4, 4, 8, out, in, coeff, len > > VBROADCASTSS m0, coeffm > > %else > > %if WIN64 > > - SWAP 0, 2 > > -%endif > > + shufps m0, m2, 0 > > No, like this shufps will interleave the values from m2 and m0. The > correct instruction would be > > shufps m0, m2, m2, 0 > > Where m2 is used for both input arguments, and the VEX encoding lets us > use another reg as output. > Tested and pushed it with that change. Thanks.
Opus tests still fail on win32, both mingw and msvc. - Hendrik _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".