From: Ronald S. Bultje Date: Sun, 29 Jan 2012 16:14:05 +0000 (-0800) Subject: imdct36: mark SSE functions as using all 16 XMM registers. X-Git-Tag: v9_beta1~3266 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=331e7c4cb34eb77451fbf84c604d717ed49abf15;p=platform%2Fupstream%2Flibav.git 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. --- 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]