OLD | NEW |
1 ; | 1 ; |
2 ; jcqnts2f.asm - sample data conversion and quantization (SSE & SSE2) | 2 ; jcqnts2f.asm - sample data conversion and quantization (SSE & 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 17 matching lines...) Expand all Loading... |
28 ; GLOBAL(void) | 28 ; GLOBAL(void) |
29 ; jsimd_convsamp_float_sse2 (JSAMPARRAY sample_data, JDIMENSION start_col, | 29 ; jsimd_convsamp_float_sse2 (JSAMPARRAY sample_data, JDIMENSION start_col, |
30 ; FAST_FLOAT * workspace); | 30 ; FAST_FLOAT * workspace); |
31 ; | 31 ; |
32 | 32 |
33 %define sample_data ebp+8 ; JSAMPARRAY sample_data | 33 %define sample_data ebp+8 ; JSAMPARRAY sample_data |
34 %define start_col ebp+12 ; JDIMENSION start_col | 34 %define start_col ebp+12 ; JDIMENSION start_col |
35 %define workspace ebp+16 ; FAST_FLOAT * workspace | 35 %define workspace ebp+16 ; FAST_FLOAT * workspace |
36 | 36 |
37 align 16 | 37 align 16 |
38 » global» EXTN(jsimd_convsamp_float_sse2) | 38 » global» EXTN(jsimd_convsamp_float_sse2) PRIVATE |
39 | 39 |
40 EXTN(jsimd_convsamp_float_sse2): | 40 EXTN(jsimd_convsamp_float_sse2): |
41 push ebp | 41 push ebp |
42 mov ebp,esp | 42 mov ebp,esp |
43 push ebx | 43 push ebx |
44 ; push ecx ; need not be preserved | 44 ; push ecx ; need not be preserved |
45 ; push edx ; need not be preserved | 45 ; push edx ; need not be preserved |
46 push esi | 46 push esi |
47 push edi | 47 push edi |
48 | 48 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 ; GLOBAL(void) | 108 ; GLOBAL(void) |
109 ; jsimd_quantize_float_sse2 (JCOEFPTR coef_block, FAST_FLOAT * divisors, | 109 ; jsimd_quantize_float_sse2 (JCOEFPTR coef_block, FAST_FLOAT * divisors, |
110 ; FAST_FLOAT * workspace); | 110 ; FAST_FLOAT * workspace); |
111 ; | 111 ; |
112 | 112 |
113 %define coef_block ebp+8 ; JCOEFPTR coef_block | 113 %define coef_block ebp+8 ; JCOEFPTR coef_block |
114 %define divisors ebp+12 ; FAST_FLOAT * divisors | 114 %define divisors ebp+12 ; FAST_FLOAT * divisors |
115 %define workspace ebp+16 ; FAST_FLOAT * workspace | 115 %define workspace ebp+16 ; FAST_FLOAT * workspace |
116 | 116 |
117 align 16 | 117 align 16 |
118 » global» EXTN(jsimd_quantize_float_sse2) | 118 » global» EXTN(jsimd_quantize_float_sse2) PRIVATE |
119 | 119 |
120 EXTN(jsimd_quantize_float_sse2): | 120 EXTN(jsimd_quantize_float_sse2): |
121 push ebp | 121 push ebp |
122 mov ebp,esp | 122 mov ebp,esp |
123 ; push ebx ; unused | 123 ; push ebx ; unused |
124 ; push ecx ; unused | 124 ; push ecx ; unused |
125 ; push edx ; need not be preserved | 125 ; push edx ; need not be preserved |
126 push esi | 126 push esi |
127 push edi | 127 push edi |
128 | 128 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 pop esi | 162 pop esi |
163 ; pop edx ; need not be preserved | 163 ; pop edx ; need not be preserved |
164 ; pop ecx ; unused | 164 ; pop ecx ; unused |
165 ; pop ebx ; unused | 165 ; pop ebx ; unused |
166 pop ebp | 166 pop ebp |
167 ret | 167 ret |
168 | 168 |
169 ; For some reason, the OS X linker does not honor the request to align the | 169 ; For some reason, the OS X linker does not honor the request to align the |
170 ; segment unless we do this. | 170 ; segment unless we do this. |
171 align 16 | 171 align 16 |
OLD | NEW |