1 // This file generates the include file for the assembly
2 // implementations by abusing the C preprocessor.
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"
18 #define define(var) %define _cpp_protection_##var
19 #define definev(var) %define _cpp_protection_##var var
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
)
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
)
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 */