x86: h264: Don't use redzone in AVX h264_deblock on Win64
authorMatt Wolenetz <wolenetz@chromium.org>
Fri, 15 Feb 2013 21:59:40 +0000 (13:59 -0800)
committerMartin Storsjö <martin@martin.st>
Thu, 21 Feb 2013 13:02:16 +0000 (15:02 +0200)
This fixes crashes in chromium on win64 on machines with AVX
(crashes that apparently aren't triggered by fate).

Signed-off-by: Martin Storsjö <martin@martin.st>
libavcodec/x86/h264_deblock.asm

index 1f1dbc6..67f9c02 100644 (file)
@@ -621,7 +621,11 @@ DEBLOCK_LUMA v, 16
     %define t5 m11
     %define mask0 m12
     %define mask1p m13
+%if WIN64
+    %define mask1q [rsp]
+%else
     %define mask1q [rsp-24]
+%endif
     %define mpb_0 m14
     %define mpb_1 m15
 %else
@@ -640,7 +644,11 @@ DEBLOCK_LUMA v, 16
 ;-----------------------------------------------------------------------------
 ; void deblock_v_luma_intra( uint8_t *pix, int stride, int alpha, int beta )
 ;-----------------------------------------------------------------------------
+%if WIN64
+cglobal deblock_%1_luma_intra_8, 4,6,16,0x10
+%else
 cglobal deblock_%1_luma_intra_8, 4,6,16,ARCH_X86_64*0x50-0x50
+%endif
     lea     r4, [r1*4]
     lea     r5, [r1*3] ; 3*stride
     dec     r2d        ; alpha-1