[FFmpeg-cvslog] imdct36: mark SSE functions as using all 16 XMM registers.

Ronald S. Bultje git at videolan.org
Mon Jan 30 05:29:43 CET 2012


ffmpeg | branch: master | Ronald S. Bultje <rsbultje at gmail.com> | Sun Jan 29 08:14:05 2012 -0800| [331e7c4cb34eb77451fbf84c604d717ed49abf15] | committer: Ronald S. Bultje

imdct36: mark SSE functions as using all 16 XMM registers.

On x86-64, it indeed uses all 16 registers (and on x86-32, this gets
clipped to 8). Not marking it properly causes callers of this function
to fail randomly because of XMM register clobbering.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=331e7c4cb34eb77451fbf84c604d717ed49abf15
---

 libavcodec/x86/imdct36_sse.asm |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/libavcodec/x86/imdct36_sse.asm b/libavcodec/x86/imdct36_sse.asm
index abdd3af..937a2cc 100644
--- a/libavcodec/x86/imdct36_sse.asm
+++ b/libavcodec/x86/imdct36_sse.asm
@@ -391,7 +391,7 @@ INIT_XMM sse
 %endif
 
 %macro DEFINE_FOUR_IMDCT 0
-cglobal four_imdct36_float, 5,5,8, out, buf, in, win, tmp
+cglobal four_imdct36_float, 5,5,16, out, buf, in, win, tmp
     movlps  m0, [inq+64]
     movhps  m0, [inq+64 +   72]
     movlps  m3, [inq+64 + 2*72]



More information about the ffmpeg-cvslog mailing list