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
This commit is contained in:
@@ -37,6 +37,9 @@
|
|||||||
global EXTN(jsimd_rgb_ycc_convert_sse2)
|
global EXTN(jsimd_rgb_ycc_convert_sse2)
|
||||||
|
|
||||||
EXTN(jsimd_rgb_ycc_convert_sse2):
|
EXTN(jsimd_rgb_ycc_convert_sse2):
|
||||||
|
push rbp
|
||||||
|
mov rax,rsp
|
||||||
|
mov rbp,rsp
|
||||||
collect_args
|
collect_args
|
||||||
push rbx
|
push rbx
|
||||||
|
|
||||||
@@ -453,6 +456,7 @@ EXTN(jsimd_rgb_ycc_convert_sse2):
|
|||||||
.return:
|
.return:
|
||||||
pop rbx
|
pop rbx
|
||||||
uncollect_args
|
uncollect_args
|
||||||
|
pop rbp
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; For some reason, the OS X linker does not honor the request to align the
|
; For some reason, the OS X linker does not honor the request to align the
|
||||||
|
|||||||
@@ -37,6 +37,9 @@
|
|||||||
global EXTN(jsimd_rgb_gray_convert_sse2)
|
global EXTN(jsimd_rgb_gray_convert_sse2)
|
||||||
|
|
||||||
EXTN(jsimd_rgb_gray_convert_sse2):
|
EXTN(jsimd_rgb_gray_convert_sse2):
|
||||||
|
push rbp
|
||||||
|
mov rax,rsp
|
||||||
|
mov rbp,rsp
|
||||||
collect_args
|
collect_args
|
||||||
push rbx
|
push rbx
|
||||||
|
|
||||||
@@ -338,6 +341,7 @@ EXTN(jsimd_rgb_gray_convert_sse2):
|
|||||||
.return:
|
.return:
|
||||||
pop rbx
|
pop rbx
|
||||||
uncollect_args
|
uncollect_args
|
||||||
|
pop rbp
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; For some reason, the OS X linker does not honor the request to align the
|
; For some reason, the OS X linker does not honor the request to align the
|
||||||
|
|||||||
@@ -80,6 +80,9 @@ PW_F1306 times 8 dw F_1_306 << CONST_SHIFT
|
|||||||
global EXTN(jsimd_fdct_ifast_sse2)
|
global EXTN(jsimd_fdct_ifast_sse2)
|
||||||
|
|
||||||
EXTN(jsimd_fdct_ifast_sse2):
|
EXTN(jsimd_fdct_ifast_sse2):
|
||||||
|
push rbp
|
||||||
|
mov rax,rsp
|
||||||
|
mov rbp,rsp
|
||||||
collect_args
|
collect_args
|
||||||
|
|
||||||
; ---- Pass 1: process rows.
|
; ---- Pass 1: process rows.
|
||||||
@@ -343,6 +346,7 @@ EXTN(jsimd_fdct_ifast_sse2):
|
|||||||
movdqa XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_DCTELEM)], xmm15
|
movdqa XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_DCTELEM)], xmm15
|
||||||
|
|
||||||
uncollect_args
|
uncollect_args
|
||||||
|
pop rbp
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; For some reason, the OS X linker does not honor the request to align the
|
; For some reason, the OS X linker does not honor the request to align the
|
||||||
|
|||||||
@@ -101,6 +101,9 @@ PW_DESCALE_P2X times 8 dw 1 << (PASS1_BITS-1)
|
|||||||
global EXTN(jsimd_fdct_islow_sse2)
|
global EXTN(jsimd_fdct_islow_sse2)
|
||||||
|
|
||||||
EXTN(jsimd_fdct_islow_sse2):
|
EXTN(jsimd_fdct_islow_sse2):
|
||||||
|
push rbp
|
||||||
|
mov rax,rsp
|
||||||
|
mov rbp,rsp
|
||||||
collect_args
|
collect_args
|
||||||
|
|
||||||
; ---- Pass 1: process rows.
|
; ---- Pass 1: process rows.
|
||||||
@@ -552,6 +555,7 @@ EXTN(jsimd_fdct_islow_sse2):
|
|||||||
movdqa XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_DCTELEM)], xmm15
|
movdqa XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_DCTELEM)], xmm15
|
||||||
|
|
||||||
uncollect_args
|
uncollect_args
|
||||||
|
pop rbp
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; For some reason, the OS X linker does not honor the request to align the
|
; For some reason, the OS X linker does not honor the request to align the
|
||||||
|
|||||||
Reference in New Issue
Block a user