From: DRC Date: Sat, 9 Aug 2014 22:58:18 +0000 (+0000) Subject: Oops. The Windows version of collect_args/uncollect_args uses rsp, so we still need... X-Git-Tag: 1.3.90~40 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8a74848a2374385c20ea7197b0821d2257fc52c8;p=libjpeg-turbo Oops. The Windows version of collect_args/uncollect_args uses rsp, so we still need the rsp prologue/epilogue, despite the fact that we aren't using the stack as a work area. This fixes a segfault on Windows caused by r1335. git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1336 632fc199-4ca6-4c93-a231-07263d6284db --- diff --git a/simd/jccolext-sse2-64.asm b/simd/jccolext-sse2-64.asm index 5dbdc27..079953a 100644 --- a/simd/jccolext-sse2-64.asm +++ b/simd/jccolext-sse2-64.asm @@ -37,6 +37,9 @@ global EXTN(jsimd_rgb_ycc_convert_sse2) EXTN(jsimd_rgb_ycc_convert_sse2): + push rbp + mov rax,rsp + mov rbp,rsp collect_args push rbx @@ -453,6 +456,7 @@ EXTN(jsimd_rgb_ycc_convert_sse2): .return: pop rbx uncollect_args + pop rbp ret ; For some reason, the OS X linker does not honor the request to align the diff --git a/simd/jcgryext-sse2-64.asm b/simd/jcgryext-sse2-64.asm index e399be9..abdd9a0 100644 --- a/simd/jcgryext-sse2-64.asm +++ b/simd/jcgryext-sse2-64.asm @@ -37,6 +37,9 @@ global EXTN(jsimd_rgb_gray_convert_sse2) EXTN(jsimd_rgb_gray_convert_sse2): + push rbp + mov rax,rsp + mov rbp,rsp collect_args push rbx @@ -338,6 +341,7 @@ EXTN(jsimd_rgb_gray_convert_sse2): .return: pop rbx uncollect_args + pop rbp ret ; For some reason, the OS X linker does not honor the request to align the diff --git a/simd/jfdctfst-sse2-64.asm b/simd/jfdctfst-sse2-64.asm index 0e2bd90..fe87fcc 100644 --- a/simd/jfdctfst-sse2-64.asm +++ b/simd/jfdctfst-sse2-64.asm @@ -80,6 +80,9 @@ PW_F1306 times 8 dw F_1_306 << CONST_SHIFT global EXTN(jsimd_fdct_ifast_sse2) EXTN(jsimd_fdct_ifast_sse2): + push rbp + mov rax,rsp + mov rbp,rsp collect_args ; ---- Pass 1: process rows. @@ -343,6 +346,7 @@ EXTN(jsimd_fdct_ifast_sse2): movdqa XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_DCTELEM)], xmm15 uncollect_args + pop rbp ret ; For some reason, the OS X linker does not honor the request to align the diff --git a/simd/jfdctint-sse2-64.asm b/simd/jfdctint-sse2-64.asm index 6a7c002..996a53b 100644 --- a/simd/jfdctint-sse2-64.asm +++ b/simd/jfdctint-sse2-64.asm @@ -101,6 +101,9 @@ PW_DESCALE_P2X times 8 dw 1 << (PASS1_BITS-1) global EXTN(jsimd_fdct_islow_sse2) EXTN(jsimd_fdct_islow_sse2): + push rbp + mov rax,rsp + mov rbp,rsp collect_args ; ---- Pass 1: process rows. @@ -552,6 +555,7 @@ EXTN(jsimd_fdct_islow_sse2): movdqa XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_DCTELEM)], xmm15 uncollect_args + pop rbp ret ; For some reason, the OS X linker does not honor the request to align the