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. _______________________________________________ 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".