OLD | NEW |
1 ; | 1 ; |
2 ; jcsample.asm - downsampling (SSE2) | 2 ; jcsample.asm - downsampling (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 ; | 5 ; |
6 ; Based on | 6 ; Based on |
7 ; x86 SIMD extension for IJG JPEG library | 7 ; x86 SIMD extension for IJG JPEG library |
8 ; Copyright (C) 1999-2006, MIYASAKA Masaru. | 8 ; Copyright (C) 1999-2006, MIYASAKA Masaru. |
9 ; For conditions of distribution and use, see copyright notice in jsimdext.inc | 9 ; For conditions of distribution and use, see copyright notice in jsimdext.inc |
10 ; | 10 ; |
(...skipping 22 matching lines...) Expand all Loading... |
33 ; | 33 ; |
34 | 34 |
35 %define img_width(b) (b)+8 ; JDIMENSION image_width | 35 %define img_width(b) (b)+8 ; JDIMENSION image_width |
36 %define max_v_samp(b) (b)+12 ; int max_v_samp_factor | 36 %define max_v_samp(b) (b)+12 ; int max_v_samp_factor |
37 %define v_samp(b) (b)+16 ; JDIMENSION v_samp_factor | 37 %define v_samp(b) (b)+16 ; JDIMENSION v_samp_factor |
38 %define width_blks(b) (b)+20 ; JDIMENSION width_blocks | 38 %define width_blks(b) (b)+20 ; JDIMENSION width_blocks |
39 %define input_data(b) (b)+24 ; JSAMPARRAY input_data | 39 %define input_data(b) (b)+24 ; JSAMPARRAY input_data |
40 %define output_data(b) (b)+28 ; JSAMPARRAY output_data | 40 %define output_data(b) (b)+28 ; JSAMPARRAY output_data |
41 | 41 |
42 align 16 | 42 align 16 |
43 global EXTN(jsimd_h2v1_downsample_sse2) | 43 global EXTN(jsimd_h2v1_downsample_sse2) PRIVATE |
44 | 44 |
45 EXTN(jsimd_h2v1_downsample_sse2): | 45 EXTN(jsimd_h2v1_downsample_sse2): |
46 push ebp | 46 push ebp |
47 mov ebp,esp | 47 mov ebp,esp |
48 ; push ebx ; unused | 48 ; push ebx ; unused |
49 ; push ecx ; need not be preserved | 49 ; push ecx ; need not be preserved |
50 ; push edx ; need not be preserved | 50 ; push edx ; need not be preserved |
51 push esi | 51 push esi |
52 push edi | 52 push edi |
53 | 53 |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 ; | 188 ; |
189 | 189 |
190 %define img_width(b) (b)+8 ; JDIMENSION image_width | 190 %define img_width(b) (b)+8 ; JDIMENSION image_width |
191 %define max_v_samp(b) (b)+12 ; int max_v_samp_factor | 191 %define max_v_samp(b) (b)+12 ; int max_v_samp_factor |
192 %define v_samp(b) (b)+16 ; JDIMENSION v_samp_factor | 192 %define v_samp(b) (b)+16 ; JDIMENSION v_samp_factor |
193 %define width_blks(b) (b)+20 ; JDIMENSION width_blocks | 193 %define width_blks(b) (b)+20 ; JDIMENSION width_blocks |
194 %define input_data(b) (b)+24 ; JSAMPARRAY input_data | 194 %define input_data(b) (b)+24 ; JSAMPARRAY input_data |
195 %define output_data(b) (b)+28 ; JSAMPARRAY output_data | 195 %define output_data(b) (b)+28 ; JSAMPARRAY output_data |
196 | 196 |
197 align 16 | 197 align 16 |
198 global EXTN(jsimd_h2v2_downsample_sse2) | 198 global EXTN(jsimd_h2v2_downsample_sse2) PRIVATE |
199 | 199 |
200 EXTN(jsimd_h2v2_downsample_sse2): | 200 EXTN(jsimd_h2v2_downsample_sse2): |
201 push ebp | 201 push ebp |
202 mov ebp,esp | 202 mov ebp,esp |
203 ; push ebx ; unused | 203 ; push ebx ; unused |
204 ; push ecx ; need not be preserved | 204 ; push ecx ; need not be preserved |
205 ; push edx ; need not be preserved | 205 ; push edx ; need not be preserved |
206 push esi | 206 push esi |
207 push edi | 207 push edi |
208 | 208 |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 pop esi | 342 pop esi |
343 ; pop edx ; need not be preserved | 343 ; pop edx ; need not be preserved |
344 ; pop ecx ; need not be preserved | 344 ; pop ecx ; need not be preserved |
345 ; pop ebx ; unused | 345 ; pop ebx ; unused |
346 pop ebp | 346 pop ebp |
347 ret | 347 ret |
348 | 348 |
349 ; For some reason, the OS X linker does not honor the request to align the | 349 ; For some reason, the OS X linker does not honor the request to align the |
350 ; segment unless we do this. | 350 ; segment unless we do this. |
351 align 16 | 351 align 16 |
OLD | NEW |