From: mayeut Date: Sat, 24 Feb 2018 11:07:34 +0000 (+0100) Subject: Fix Win64 ABI conformance issue in AVX2 ISLOW IDCT X-Git-Tag: 1.5.90~29 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4c4dc6149b907624027089a4f3b6add7a5f49591;p=libjpeg-turbo Fix Win64 ABI conformance issue in AVX2 ISLOW IDCT xmm8-xmm11 must be saved and restored, since the function uses ymm8-ymm11. Closes #211 --- diff --git a/simd/x86_64/jidctint-avx2.asm b/simd/x86_64/jidctint-avx2.asm index c009b45..b00151b 100644 --- a/simd/x86_64/jidctint-avx2.asm +++ b/simd/x86_64/jidctint-avx2.asm @@ -286,6 +286,7 @@ EXTN(jsimd_idct_islow_avx2): push rbp mov rax, rsp ; rax = original rbp mov rbp, rsp ; rbp = aligned rbp + push_xmm 4 collect_args 4 ; ---- Pass 1: process columns. @@ -409,6 +410,7 @@ EXTN(jsimd_idct_islow_avx2): movq XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm7 uncollect_args 4 + pop_xmm 4 pop rbp ret