Bug 573948 - Part 1: Use libjpeg-turbo instead of libjpeg. r=jmuizelaar
[gecko.git] / jpeg / simd / jsimdcfg.inc.h
blob4876038bc8c57515d2d1e33801b7ef88f2643f49
1 // This file generates the include file for the assembly
2 // implementations by abusing the C preprocessor.
3 //
4 // Note: Some things are manually defined as they need to
5 // be mapped to NASM types.
8 ; Automatically generated include file from jsimdcfg.inc.h
11 #define JPEG_INTERNALS
13 #include "../jpeglib.h"
14 #include "../jconfig.h"
15 #include "../jmorecfg.h"
16 #include "jsimd.h"
18 #define define(var) %define _cpp_protection_##var
19 #define definev(var) %define _cpp_protection_##var var
22 ; -- jpeglib.h
25 definev(DCTSIZE)
26 definev(DCTSIZE2)
29 ; -- jmorecfg.h
32 definev(RGB_RED)
33 definev(RGB_GREEN)
34 definev(RGB_BLUE)
36 definev(RGB_PIXELSIZE)
38 ; Representation of a single sample (pixel element value).
39 ; On this SIMD implementation, this must be 'unsigned char'.
42 %define JSAMPLE byte ; unsigned char
43 %define SIZEOF_JSAMPLE SIZEOF_BYTE ; sizeof(JSAMPLE)
45 definev(CENTERJSAMPLE)
47 ; Representation of a DCT frequency coefficient.
48 ; On this SIMD implementation, this must be 'short'.
50 %define JCOEF word ; short
51 %define SIZEOF_JCOEF SIZEOF_WORD ; sizeof(JCOEF)
53 ; Datatype used for image dimensions.
54 ; On this SIMD implementation, this must be 'unsigned int'.
56 %define JDIMENSION dword ; unsigned int
57 %define SIZEOF_JDIMENSION SIZEOF_DWORD ; sizeof(JDIMENSION)
59 %define JSAMPROW POINTER ; JSAMPLE FAR * (jpeglib.h)
60 %define JSAMPARRAY POINTER ; JSAMPROW * (jpeglib.h)
61 %define JSAMPIMAGE POINTER ; JSAMPARRAY * (jpeglib.h)
62 %define JCOEFPTR POINTER ; JCOEF FAR * (jpeglib.h)
63 %define SIZEOF_JSAMPROW SIZEOF_POINTER ; sizeof(JSAMPROW)
64 %define SIZEOF_JSAMPARRAY SIZEOF_POINTER ; sizeof(JSAMPARRAY)
65 %define SIZEOF_JSAMPIMAGE SIZEOF_POINTER ; sizeof(JSAMPIMAGE)
66 %define SIZEOF_JCOEFPTR SIZEOF_POINTER ; sizeof(JCOEFPTR)
69 ; -- jdct.h
72 ; A forward DCT routine is given a pointer to a work area of type DCTELEM[];
73 ; the DCT is to be performed in-place in that buffer.
74 ; To maximize parallelism, Type DCTELEM is changed to short (originally, int).
76 %define DCTELEM word ; short
77 %define SIZEOF_DCTELEM SIZEOF_WORD ; sizeof(DCTELEM)
79 %define FAST_FLOAT FP32 ; float
80 %define SIZEOF_FAST_FLOAT SIZEOF_FP32 ; sizeof(FAST_FLOAT)
82 ; To maximize parallelism, Type MULTIPLIER is changed to short.
84 %define ISLOW_MULT_TYPE word ; must be short
85 %define SIZEOF_ISLOW_MULT_TYPE SIZEOF_WORD ; sizeof(ISLOW_MULT_TYPE)
87 %define IFAST_MULT_TYPE word ; must be short
88 %define SIZEOF_IFAST_MULT_TYPE SIZEOF_WORD ; sizeof(IFAST_MULT_TYPE)
89 %define IFAST_SCALE_BITS 2 ; fractional bits in scale factors
91 %define FLOAT_MULT_TYPE FP32 ; must be float
92 %define SIZEOF_FLOAT_MULT_TYPE SIZEOF_FP32 ; sizeof(FLOAT_MULT_TYPE)
95 ; -- jsimd.h
98 definev(JSIMD_NONE)
99 definev(JSIMD_MMX)
100 definev(JSIMD_3DNOW)
101 definev(JSIMD_SSE)
102 definev(JSIMD_SSE2)
104 ; Short forms of external names for systems with brain-damaged linkers.
106 #ifdef NEED_SHORT_EXTERNAL_NAMES
107 definev(jpeg_simd_cpu_support)
108 definev(jsimd_rgb_ycc_convert_mmx)
109 definev(jsimd_ycc_rgb_convert_mmx)
110 definev(jconst_rgb_ycc_convert_sse2)
111 definev(jsimd_rgb_ycc_convert_sse2)
112 definev(jconst_ycc_rgb_convert_sse2)
113 definev(jsimd_ycc_rgb_convert_sse2)
114 definev(jsimd_h2v2_downsample_mmx)
115 definev(jsimd_h2v1_downsample_mmx)
116 definev(jsimd_h2v2_downsample_sse2)
117 definev(jsimd_h2v1_downsample_sse2)
118 definev(jsimd_h2v2_upsample_mmx)
119 definev(jsimd_h2v1_upsample_mmx)
120 definev(jsimd_h2v1_fancy_upsample_mmx)
121 definev(jsimd_h2v2_fancy_upsample_mmx)
122 definev(jsimd_h2v1_merged_upsample_mmx)
123 definev(jsimd_h2v2_merged_upsample_mmx)
124 definev(jsimd_h2v2_upsample_sse2)
125 definev(jsimd_h2v1_upsample_sse2)
126 definev(jconst_fancy_upsample_sse2)
127 definev(jsimd_h2v1_fancy_upsample_sse2)
128 definev(jsimd_h2v2_fancy_upsample_sse2)
129 definev(jconst_merged_upsample_sse2)
130 definev(jsimd_h2v1_merged_upsample_sse2)
131 definev(jsimd_h2v2_merged_upsample_sse2)
132 definev(jsimd_convsamp_mmx)
133 definev(jsimd_convsamp_sse2)
134 definev(jsimd_convsamp_float_3dnow)
135 definev(jsimd_convsamp_float_sse)
136 definev(jsimd_convsamp_float_sse2)
137 definev(jsimd_fdct_islow_mmx)
138 definev(jsimd_fdct_ifast_mmx)
139 definev(jconst_fdct_islow_sse2)
140 definev(jsimd_fdct_islow_sse2)
141 definev(jconst_fdct_ifast_sse2)
142 definev(jsimd_fdct_ifast_sse2)
143 definev(jsimd_fdct_float_3dnow)
144 definev(jconst_fdct_float_sse)
145 definev(jsimd_fdct_float_sse)
146 definev(jsimd_quantize_mmx)
147 definev(jsimd_quantize_sse2)
148 definev(jsimd_quantize_float_3dnow)
149 definev(jsimd_quantize_float_sse)
150 definev(jsimd_quantize_float_sse2)
151 definev(jsimd_idct_2x2_mmx)
152 definev(jsimd_idct_4x4_mmx)
153 definev(jconst_idct_red_sse2)
154 definev(jsimd_idct_2x2_sse2)
155 definev(jsimd_idct_4x4_sse2)
156 definev(jsimd_idct_islow_mmx)
157 definev(jsimd_idct_ifast_mmx)
158 definev(jconst_idct_islow_sse2)
159 definev(jsimd_idct_islow_sse2)
160 definev(jconst_idct_ifast_sse2)
161 definev(jsimd_idct_ifast_sse2)
162 definev(jsimd_idct_float_3dnow)
163 definev(jconst_idct_float_sse)
164 definev(jsimd_idct_float_sse)
165 definev(jconst_idct_float_sse2)
166 definev(jsimd_idct_float_sse2)
167 #endif /* NEED_SHORT_EXTERNAL_NAMES */