Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: simd/jsimd_i386.c

Issue 9232002: Update libjpeg-turbo to 1.2. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libjpeg_turbo/
Patch Set: '' Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « simd/jsimd_arm.c ('k') | simd/jsimd_x86_64.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * jsimd_i386.c 2 * jsimd_i386.c
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-2011 D. R. Commander 5 * Copyright 2009-2011 D. R. Commander
6 * 6 *
7 * Based on the x86 SIMD extension for IJG JPEG library, 7 * Based on the 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 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 void (*sse2fct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int); 135 void (*sse2fct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int);
136 void (*mmxfct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int); 136 void (*mmxfct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int);
137 137
138 switch(cinfo->in_color_space) 138 switch(cinfo->in_color_space)
139 { 139 {
140 case JCS_EXT_RGB: 140 case JCS_EXT_RGB:
141 sse2fct=jsimd_extrgb_ycc_convert_sse2; 141 sse2fct=jsimd_extrgb_ycc_convert_sse2;
142 mmxfct=jsimd_extrgb_ycc_convert_mmx; 142 mmxfct=jsimd_extrgb_ycc_convert_mmx;
143 break; 143 break;
144 case JCS_EXT_RGBX: 144 case JCS_EXT_RGBX:
145 case JCS_EXT_RGBA:
145 sse2fct=jsimd_extrgbx_ycc_convert_sse2; 146 sse2fct=jsimd_extrgbx_ycc_convert_sse2;
146 mmxfct=jsimd_extrgbx_ycc_convert_mmx; 147 mmxfct=jsimd_extrgbx_ycc_convert_mmx;
147 break; 148 break;
148 case JCS_EXT_BGR: 149 case JCS_EXT_BGR:
149 sse2fct=jsimd_extbgr_ycc_convert_sse2; 150 sse2fct=jsimd_extbgr_ycc_convert_sse2;
150 mmxfct=jsimd_extbgr_ycc_convert_mmx; 151 mmxfct=jsimd_extbgr_ycc_convert_mmx;
151 break; 152 break;
152 case JCS_EXT_BGRX: 153 case JCS_EXT_BGRX:
154 case JCS_EXT_BGRA:
153 sse2fct=jsimd_extbgrx_ycc_convert_sse2; 155 sse2fct=jsimd_extbgrx_ycc_convert_sse2;
154 mmxfct=jsimd_extbgrx_ycc_convert_mmx; 156 mmxfct=jsimd_extbgrx_ycc_convert_mmx;
155 break; 157 break;
156 case JCS_EXT_XBGR: 158 case JCS_EXT_XBGR:
159 case JCS_EXT_ABGR:
157 sse2fct=jsimd_extxbgr_ycc_convert_sse2; 160 sse2fct=jsimd_extxbgr_ycc_convert_sse2;
158 mmxfct=jsimd_extxbgr_ycc_convert_mmx; 161 mmxfct=jsimd_extxbgr_ycc_convert_mmx;
159 break; 162 break;
160 case JCS_EXT_XRGB: 163 case JCS_EXT_XRGB:
164 case JCS_EXT_ARGB:
161 sse2fct=jsimd_extxrgb_ycc_convert_sse2; 165 sse2fct=jsimd_extxrgb_ycc_convert_sse2;
162 mmxfct=jsimd_extxrgb_ycc_convert_mmx; 166 mmxfct=jsimd_extxrgb_ycc_convert_mmx;
163 break; 167 break;
164 default: 168 default:
165 sse2fct=jsimd_rgb_ycc_convert_sse2; 169 sse2fct=jsimd_rgb_ycc_convert_sse2;
166 mmxfct=jsimd_rgb_ycc_convert_mmx; 170 mmxfct=jsimd_rgb_ycc_convert_mmx;
167 break; 171 break;
168 } 172 }
169 173
170 if ((simd_support & JSIMD_SSE2) && 174 if ((simd_support & JSIMD_SSE2) &&
(...skipping 13 matching lines...) Expand all
184 void (*sse2fct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int); 188 void (*sse2fct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int);
185 void (*mmxfct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int); 189 void (*mmxfct)(JDIMENSION, JSAMPARRAY, JSAMPIMAGE, JDIMENSION, int);
186 190
187 switch(cinfo->in_color_space) 191 switch(cinfo->in_color_space)
188 { 192 {
189 case JCS_EXT_RGB: 193 case JCS_EXT_RGB:
190 sse2fct=jsimd_extrgb_gray_convert_sse2; 194 sse2fct=jsimd_extrgb_gray_convert_sse2;
191 mmxfct=jsimd_extrgb_gray_convert_mmx; 195 mmxfct=jsimd_extrgb_gray_convert_mmx;
192 break; 196 break;
193 case JCS_EXT_RGBX: 197 case JCS_EXT_RGBX:
198 case JCS_EXT_RGBA:
194 sse2fct=jsimd_extrgbx_gray_convert_sse2; 199 sse2fct=jsimd_extrgbx_gray_convert_sse2;
195 mmxfct=jsimd_extrgbx_gray_convert_mmx; 200 mmxfct=jsimd_extrgbx_gray_convert_mmx;
196 break; 201 break;
197 case JCS_EXT_BGR: 202 case JCS_EXT_BGR:
198 sse2fct=jsimd_extbgr_gray_convert_sse2; 203 sse2fct=jsimd_extbgr_gray_convert_sse2;
199 mmxfct=jsimd_extbgr_gray_convert_mmx; 204 mmxfct=jsimd_extbgr_gray_convert_mmx;
200 break; 205 break;
201 case JCS_EXT_BGRX: 206 case JCS_EXT_BGRX:
207 case JCS_EXT_BGRA:
202 sse2fct=jsimd_extbgrx_gray_convert_sse2; 208 sse2fct=jsimd_extbgrx_gray_convert_sse2;
203 mmxfct=jsimd_extbgrx_gray_convert_mmx; 209 mmxfct=jsimd_extbgrx_gray_convert_mmx;
204 break; 210 break;
205 case JCS_EXT_XBGR: 211 case JCS_EXT_XBGR:
212 case JCS_EXT_ABGR:
206 sse2fct=jsimd_extxbgr_gray_convert_sse2; 213 sse2fct=jsimd_extxbgr_gray_convert_sse2;
207 mmxfct=jsimd_extxbgr_gray_convert_mmx; 214 mmxfct=jsimd_extxbgr_gray_convert_mmx;
208 break; 215 break;
209 case JCS_EXT_XRGB: 216 case JCS_EXT_XRGB:
217 case JCS_EXT_ARGB:
210 sse2fct=jsimd_extxrgb_gray_convert_sse2; 218 sse2fct=jsimd_extxrgb_gray_convert_sse2;
211 mmxfct=jsimd_extxrgb_gray_convert_mmx; 219 mmxfct=jsimd_extxrgb_gray_convert_mmx;
212 break; 220 break;
213 default: 221 default:
214 sse2fct=jsimd_rgb_gray_convert_sse2; 222 sse2fct=jsimd_rgb_gray_convert_sse2;
215 mmxfct=jsimd_rgb_gray_convert_mmx; 223 mmxfct=jsimd_rgb_gray_convert_mmx;
216 break; 224 break;
217 } 225 }
218 226
219 if ((simd_support & JSIMD_SSE2) && 227 if ((simd_support & JSIMD_SSE2) &&
(...skipping 13 matching lines...) Expand all
233 void (*sse2fct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY, int); 241 void (*sse2fct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY, int);
234 void (*mmxfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY, int); 242 void (*mmxfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY, int);
235 243
236 switch(cinfo->out_color_space) 244 switch(cinfo->out_color_space)
237 { 245 {
238 case JCS_EXT_RGB: 246 case JCS_EXT_RGB:
239 sse2fct=jsimd_ycc_extrgb_convert_sse2; 247 sse2fct=jsimd_ycc_extrgb_convert_sse2;
240 mmxfct=jsimd_ycc_extrgb_convert_mmx; 248 mmxfct=jsimd_ycc_extrgb_convert_mmx;
241 break; 249 break;
242 case JCS_EXT_RGBX: 250 case JCS_EXT_RGBX:
251 case JCS_EXT_RGBA:
243 sse2fct=jsimd_ycc_extrgbx_convert_sse2; 252 sse2fct=jsimd_ycc_extrgbx_convert_sse2;
244 mmxfct=jsimd_ycc_extrgbx_convert_mmx; 253 mmxfct=jsimd_ycc_extrgbx_convert_mmx;
245 break; 254 break;
246 case JCS_EXT_BGR: 255 case JCS_EXT_BGR:
247 sse2fct=jsimd_ycc_extbgr_convert_sse2; 256 sse2fct=jsimd_ycc_extbgr_convert_sse2;
248 mmxfct=jsimd_ycc_extbgr_convert_mmx; 257 mmxfct=jsimd_ycc_extbgr_convert_mmx;
249 break; 258 break;
250 case JCS_EXT_BGRX: 259 case JCS_EXT_BGRX:
260 case JCS_EXT_BGRA:
251 sse2fct=jsimd_ycc_extbgrx_convert_sse2; 261 sse2fct=jsimd_ycc_extbgrx_convert_sse2;
252 mmxfct=jsimd_ycc_extbgrx_convert_mmx; 262 mmxfct=jsimd_ycc_extbgrx_convert_mmx;
253 break; 263 break;
254 case JCS_EXT_XBGR: 264 case JCS_EXT_XBGR:
265 case JCS_EXT_ABGR:
255 sse2fct=jsimd_ycc_extxbgr_convert_sse2; 266 sse2fct=jsimd_ycc_extxbgr_convert_sse2;
256 mmxfct=jsimd_ycc_extxbgr_convert_mmx; 267 mmxfct=jsimd_ycc_extxbgr_convert_mmx;
257 break; 268 break;
258 case JCS_EXT_XRGB: 269 case JCS_EXT_XRGB:
270 case JCS_EXT_ARGB:
259 sse2fct=jsimd_ycc_extxrgb_convert_sse2; 271 sse2fct=jsimd_ycc_extxrgb_convert_sse2;
260 mmxfct=jsimd_ycc_extxrgb_convert_mmx; 272 mmxfct=jsimd_ycc_extxrgb_convert_mmx;
261 break; 273 break;
262 default: 274 default:
263 sse2fct=jsimd_ycc_rgb_convert_sse2; 275 sse2fct=jsimd_ycc_rgb_convert_sse2;
264 mmxfct=jsimd_ycc_rgb_convert_mmx; 276 mmxfct=jsimd_ycc_rgb_convert_mmx;
265 break; 277 break;
266 } 278 }
267 279
268 if ((simd_support & JSIMD_SSE2) && 280 if ((simd_support & JSIMD_SSE2) &&
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 void (*sse2fct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY); 537 void (*sse2fct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY);
526 void (*mmxfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY); 538 void (*mmxfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY);
527 539
528 switch(cinfo->out_color_space) 540 switch(cinfo->out_color_space)
529 { 541 {
530 case JCS_EXT_RGB: 542 case JCS_EXT_RGB:
531 sse2fct=jsimd_h2v2_extrgb_merged_upsample_sse2; 543 sse2fct=jsimd_h2v2_extrgb_merged_upsample_sse2;
532 mmxfct=jsimd_h2v2_extrgb_merged_upsample_mmx; 544 mmxfct=jsimd_h2v2_extrgb_merged_upsample_mmx;
533 break; 545 break;
534 case JCS_EXT_RGBX: 546 case JCS_EXT_RGBX:
547 case JCS_EXT_RGBA:
535 sse2fct=jsimd_h2v2_extrgbx_merged_upsample_sse2; 548 sse2fct=jsimd_h2v2_extrgbx_merged_upsample_sse2;
536 mmxfct=jsimd_h2v2_extrgbx_merged_upsample_mmx; 549 mmxfct=jsimd_h2v2_extrgbx_merged_upsample_mmx;
537 break; 550 break;
538 case JCS_EXT_BGR: 551 case JCS_EXT_BGR:
539 sse2fct=jsimd_h2v2_extbgr_merged_upsample_sse2; 552 sse2fct=jsimd_h2v2_extbgr_merged_upsample_sse2;
540 mmxfct=jsimd_h2v2_extbgr_merged_upsample_mmx; 553 mmxfct=jsimd_h2v2_extbgr_merged_upsample_mmx;
541 break; 554 break;
542 case JCS_EXT_BGRX: 555 case JCS_EXT_BGRX:
556 case JCS_EXT_BGRA:
543 sse2fct=jsimd_h2v2_extbgrx_merged_upsample_sse2; 557 sse2fct=jsimd_h2v2_extbgrx_merged_upsample_sse2;
544 mmxfct=jsimd_h2v2_extbgrx_merged_upsample_mmx; 558 mmxfct=jsimd_h2v2_extbgrx_merged_upsample_mmx;
545 break; 559 break;
546 case JCS_EXT_XBGR: 560 case JCS_EXT_XBGR:
561 case JCS_EXT_ABGR:
547 sse2fct=jsimd_h2v2_extxbgr_merged_upsample_sse2; 562 sse2fct=jsimd_h2v2_extxbgr_merged_upsample_sse2;
548 mmxfct=jsimd_h2v2_extxbgr_merged_upsample_mmx; 563 mmxfct=jsimd_h2v2_extxbgr_merged_upsample_mmx;
549 break; 564 break;
550 case JCS_EXT_XRGB: 565 case JCS_EXT_XRGB:
566 case JCS_EXT_ARGB:
551 sse2fct=jsimd_h2v2_extxrgb_merged_upsample_sse2; 567 sse2fct=jsimd_h2v2_extxrgb_merged_upsample_sse2;
552 mmxfct=jsimd_h2v2_extxrgb_merged_upsample_mmx; 568 mmxfct=jsimd_h2v2_extxrgb_merged_upsample_mmx;
553 break; 569 break;
554 default: 570 default:
555 sse2fct=jsimd_h2v2_merged_upsample_sse2; 571 sse2fct=jsimd_h2v2_merged_upsample_sse2;
556 mmxfct=jsimd_h2v2_merged_upsample_mmx; 572 mmxfct=jsimd_h2v2_merged_upsample_mmx;
557 break; 573 break;
558 } 574 }
559 575
560 if ((simd_support & JSIMD_SSE2) && 576 if ((simd_support & JSIMD_SSE2) &&
(...skipping 14 matching lines...) Expand all
575 void (*sse2fct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY); 591 void (*sse2fct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY);
576 void (*mmxfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY); 592 void (*mmxfct)(JDIMENSION, JSAMPIMAGE, JDIMENSION, JSAMPARRAY);
577 593
578 switch(cinfo->out_color_space) 594 switch(cinfo->out_color_space)
579 { 595 {
580 case JCS_EXT_RGB: 596 case JCS_EXT_RGB:
581 sse2fct=jsimd_h2v1_extrgb_merged_upsample_sse2; 597 sse2fct=jsimd_h2v1_extrgb_merged_upsample_sse2;
582 mmxfct=jsimd_h2v1_extrgb_merged_upsample_mmx; 598 mmxfct=jsimd_h2v1_extrgb_merged_upsample_mmx;
583 break; 599 break;
584 case JCS_EXT_RGBX: 600 case JCS_EXT_RGBX:
601 case JCS_EXT_RGBA:
585 sse2fct=jsimd_h2v1_extrgbx_merged_upsample_sse2; 602 sse2fct=jsimd_h2v1_extrgbx_merged_upsample_sse2;
586 mmxfct=jsimd_h2v1_extrgbx_merged_upsample_mmx; 603 mmxfct=jsimd_h2v1_extrgbx_merged_upsample_mmx;
587 break; 604 break;
588 case JCS_EXT_BGR: 605 case JCS_EXT_BGR:
589 sse2fct=jsimd_h2v1_extbgr_merged_upsample_sse2; 606 sse2fct=jsimd_h2v1_extbgr_merged_upsample_sse2;
590 mmxfct=jsimd_h2v1_extbgr_merged_upsample_mmx; 607 mmxfct=jsimd_h2v1_extbgr_merged_upsample_mmx;
591 break; 608 break;
592 case JCS_EXT_BGRX: 609 case JCS_EXT_BGRX:
610 case JCS_EXT_BGRA:
593 sse2fct=jsimd_h2v1_extbgrx_merged_upsample_sse2; 611 sse2fct=jsimd_h2v1_extbgrx_merged_upsample_sse2;
594 mmxfct=jsimd_h2v1_extbgrx_merged_upsample_mmx; 612 mmxfct=jsimd_h2v1_extbgrx_merged_upsample_mmx;
595 break; 613 break;
596 case JCS_EXT_XBGR: 614 case JCS_EXT_XBGR:
615 case JCS_EXT_ABGR:
597 sse2fct=jsimd_h2v1_extxbgr_merged_upsample_sse2; 616 sse2fct=jsimd_h2v1_extxbgr_merged_upsample_sse2;
598 mmxfct=jsimd_h2v1_extxbgr_merged_upsample_mmx; 617 mmxfct=jsimd_h2v1_extxbgr_merged_upsample_mmx;
599 break; 618 break;
600 case JCS_EXT_XRGB: 619 case JCS_EXT_XRGB:
620 case JCS_EXT_ARGB:
601 sse2fct=jsimd_h2v1_extxrgb_merged_upsample_sse2; 621 sse2fct=jsimd_h2v1_extxrgb_merged_upsample_sse2;
602 mmxfct=jsimd_h2v1_extxrgb_merged_upsample_mmx; 622 mmxfct=jsimd_h2v1_extxrgb_merged_upsample_mmx;
603 break; 623 break;
604 default: 624 default:
605 sse2fct=jsimd_h2v1_merged_upsample_sse2; 625 sse2fct=jsimd_h2v1_merged_upsample_sse2;
606 mmxfct=jsimd_h2v1_merged_upsample_mmx; 626 mmxfct=jsimd_h2v1_merged_upsample_mmx;
607 break; 627 break;
608 } 628 }
609 629
610 if ((simd_support & JSIMD_SSE2) && 630 if ((simd_support & JSIMD_SSE2) &&
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
1019 jsimd_idct_float_sse2(compptr->dct_table, coef_block, 1039 jsimd_idct_float_sse2(compptr->dct_table, coef_block,
1020 output_buf, output_col); 1040 output_buf, output_col);
1021 else if ((simd_support & JSIMD_SSE) && IS_ALIGNED_SSE(jconst_idct_float_sse)) 1041 else if ((simd_support & JSIMD_SSE) && IS_ALIGNED_SSE(jconst_idct_float_sse))
1022 jsimd_idct_float_sse(compptr->dct_table, coef_block, 1042 jsimd_idct_float_sse(compptr->dct_table, coef_block,
1023 output_buf, output_col); 1043 output_buf, output_col);
1024 else if (simd_support & JSIMD_3DNOW) 1044 else if (simd_support & JSIMD_3DNOW)
1025 jsimd_idct_float_3dnow(compptr->dct_table, coef_block, 1045 jsimd_idct_float_3dnow(compptr->dct_table, coef_block,
1026 output_buf, output_col); 1046 output_buf, output_col);
1027 } 1047 }
1028 1048
OLDNEW
« no previous file with comments | « simd/jsimd_arm.c ('k') | simd/jsimd_x86_64.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698