OLD | NEW |
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 D. R. Commander | 5 * Copyright 2009 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 * | 9 * |
10 * This file contains the interface between the "normal" portions | 10 * This file contains the interface between the "normal" portions |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 mmxfct=jsimd_extbgrx_ycc_convert_mmx; | 131 mmxfct=jsimd_extbgrx_ycc_convert_mmx; |
132 break; | 132 break; |
133 case JCS_EXT_XBGR: | 133 case JCS_EXT_XBGR: |
134 sse2fct=jsimd_extxbgr_ycc_convert_sse2; | 134 sse2fct=jsimd_extxbgr_ycc_convert_sse2; |
135 mmxfct=jsimd_extxbgr_ycc_convert_mmx; | 135 mmxfct=jsimd_extxbgr_ycc_convert_mmx; |
136 break; | 136 break; |
137 case JCS_EXT_XRGB: | 137 case JCS_EXT_XRGB: |
138 sse2fct=jsimd_extxrgb_ycc_convert_sse2; | 138 sse2fct=jsimd_extxrgb_ycc_convert_sse2; |
139 mmxfct=jsimd_extxrgb_ycc_convert_mmx; | 139 mmxfct=jsimd_extxrgb_ycc_convert_mmx; |
140 break; | 140 break; |
| 141 case JCS_EXT_BGRA: |
| 142 sse2fct=jsimd_extbgra_ycc_convert_sse2; |
| 143 mmxfct=jsimd_extbgrx_ycc_convert_mmx; |
| 144 break; |
141 default: | 145 default: |
142 sse2fct=jsimd_rgb_ycc_convert_sse2; | 146 sse2fct=jsimd_rgb_ycc_convert_sse2; |
143 mmxfct=jsimd_rgb_ycc_convert_mmx; | 147 mmxfct=jsimd_rgb_ycc_convert_mmx; |
144 break; | 148 break; |
145 } | 149 } |
146 | 150 |
147 if ((simd_support & JSIMD_SSE2) && | 151 if ((simd_support & JSIMD_SSE2) && |
148 IS_ALIGNED_SSE(jconst_rgb_ycc_convert_sse2)) | 152 IS_ALIGNED_SSE(jconst_rgb_ycc_convert_sse2)) |
149 sse2fct(cinfo->image_width, input_buf, | 153 sse2fct(cinfo->image_width, input_buf, |
150 output_buf, output_row, num_rows); | 154 output_buf, output_row, num_rows); |
(...skipping 795 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
946 if ((simd_support & JSIMD_SSE2) && IS_ALIGNED_SSE(jconst_idct_float_sse2)) | 950 if ((simd_support & JSIMD_SSE2) && IS_ALIGNED_SSE(jconst_idct_float_sse2)) |
947 jsimd_idct_float_sse2(compptr->dct_table, coef_block, | 951 jsimd_idct_float_sse2(compptr->dct_table, coef_block, |
948 output_buf, output_col); | 952 output_buf, output_col); |
949 else if ((simd_support & JSIMD_SSE) && IS_ALIGNED_SSE(jconst_idct_float_sse)) | 953 else if ((simd_support & JSIMD_SSE) && IS_ALIGNED_SSE(jconst_idct_float_sse)) |
950 jsimd_idct_float_sse(compptr->dct_table, coef_block, | 954 jsimd_idct_float_sse(compptr->dct_table, coef_block, |
951 output_buf, output_col); | 955 output_buf, output_col); |
952 else if (simd_support & JSIMD_3DNOW) | 956 else if (simd_support & JSIMD_3DNOW) |
953 jsimd_idct_float_3dnow(compptr->dct_table, coef_block, | 957 jsimd_idct_float_3dnow(compptr->dct_table, coef_block, |
954 output_buf, output_col); | 958 output_buf, output_col); |
955 } | 959 } |
956 | |
OLD | NEW |