OLD | NEW |
1 ; | 1 ; |
2 ; jcsample.asm - downsampling (64-bit SSE2) | 2 ; jcsample.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 23 matching lines...) Expand all Loading... |
34 ; | 34 ; |
35 | 35 |
36 ; r10 = JDIMENSION image_width | 36 ; r10 = JDIMENSION image_width |
37 ; r11 = int max_v_samp_factor | 37 ; r11 = int max_v_samp_factor |
38 ; r12 = JDIMENSION v_samp_factor | 38 ; r12 = JDIMENSION v_samp_factor |
39 ; r13 = JDIMENSION width_blocks | 39 ; r13 = JDIMENSION width_blocks |
40 ; r14 = JSAMPARRAY input_data | 40 ; r14 = JSAMPARRAY input_data |
41 ; r15 = JSAMPARRAY output_data | 41 ; r15 = JSAMPARRAY output_data |
42 | 42 |
43 align 16 | 43 align 16 |
44 global EXTN(jsimd_h2v1_downsample_sse2) | 44 global EXTN(jsimd_h2v1_downsample_sse2) PRIVATE |
45 | 45 |
46 EXTN(jsimd_h2v1_downsample_sse2): | 46 EXTN(jsimd_h2v1_downsample_sse2): |
47 push rbp | 47 push rbp |
48 mov rax,rsp | 48 mov rax,rsp |
49 mov rbp,rsp | 49 mov rbp,rsp |
50 collect_args | 50 collect_args |
51 | 51 |
52 mov ecx, r13d | 52 mov ecx, r13d |
53 shl rcx,3 ; imul rcx,DCTSIZE (rcx = output_cols) | 53 shl rcx,3 ; imul rcx,DCTSIZE (rcx = output_cols) |
54 jz near .return | 54 jz near .return |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 ; | 178 ; |
179 | 179 |
180 ; r10 = JDIMENSION image_width | 180 ; r10 = JDIMENSION image_width |
181 ; r11 = int max_v_samp_factor | 181 ; r11 = int max_v_samp_factor |
182 ; r12 = JDIMENSION v_samp_factor | 182 ; r12 = JDIMENSION v_samp_factor |
183 ; r13 = JDIMENSION width_blocks | 183 ; r13 = JDIMENSION width_blocks |
184 ; r14 = JSAMPARRAY input_data | 184 ; r14 = JSAMPARRAY input_data |
185 ; r15 = JSAMPARRAY output_data | 185 ; r15 = JSAMPARRAY output_data |
186 | 186 |
187 align 16 | 187 align 16 |
188 global EXTN(jsimd_h2v2_downsample_sse2) | 188 global EXTN(jsimd_h2v2_downsample_sse2) PRIVATE |
189 | 189 |
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 |
(...skipping 122 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 |