OLD | NEW |
1 ; | 1 ; |
2 ; jcsamss2-64.asm - downsampling (64-bit SSE2) | 2 ; jcsamss2-64.asm - downsampling (64-bit SSE2) |
3 ; | 3 ; |
4 ; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB | 4 ; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB |
5 ; Copyright 2009 D. R. Commander | 5 ; Copyright 2009 D. R. Commander |
6 ; | 6 ; |
7 ; Based on | 7 ; Based on |
8 ; x86 SIMD extension for IJG JPEG library | 8 ; x86 SIMD extension for IJG JPEG library |
9 ; Copyright (C) 1999-2006, MIYASAKA Masaru. | 9 ; Copyright (C) 1999-2006, MIYASAKA Masaru. |
10 ; For conditions of distribution and use, see copyright notice in jsimdext.inc | 10 ; For conditions of distribution and use, see copyright notice in jsimdext.inc |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 EXTN(jsimd_h2v2_downsample_sse2): | 190 EXTN(jsimd_h2v2_downsample_sse2): |
191 push rbp | 191 push rbp |
192 mov rax,rsp | 192 mov rax,rsp |
193 mov rbp,rsp | 193 mov rbp,rsp |
194 collect_args | 194 collect_args |
195 | 195 |
196 mov ecx, r13d | 196 mov ecx, r13d |
197 shl rcx,3 ; imul rcx,DCTSIZE (rcx = output_cols) | 197 shl rcx,3 ; imul rcx,DCTSIZE (rcx = output_cols) |
198 jz near .return | 198 jz near .return |
199 | 199 |
200 » mov» rdx, r10 | 200 » mov» edx, r10d |
201 | 201 |
202 ; -- expand_right_edge | 202 ; -- expand_right_edge |
203 | 203 |
204 push rcx | 204 push rcx |
205 shl rcx,1 ; output_cols * 2 | 205 shl rcx,1 ; output_cols * 2 |
206 sub rcx,rdx | 206 sub rcx,rdx |
207 jle short .expand_end | 207 jle short .expand_end |
208 | 208 |
209 mov rax, r11 | 209 mov rax, r11 |
210 test rax,rax | 210 test rax,rax |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 jg near .rowloop | 321 jg near .rowloop |
322 | 322 |
323 .return: | 323 .return: |
324 uncollect_args | 324 uncollect_args |
325 pop rbp | 325 pop rbp |
326 ret | 326 ret |
327 | 327 |
328 ; For some reason, the OS X linker does not honor the request to align the | 328 ; For some reason, the OS X linker does not honor the request to align the |
329 ; segment unless we do this. | 329 ; segment unless we do this. |
330 align 16 | 330 align 16 |
OLD | NEW |