4 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
6 * Based on the x86 SIMD extension for IJG JPEG library,
7 * Copyright (C) 1999-2006, MIYASAKA Masaru.
8 * For conditions of distribution and use, see copyright notice in jsimdext.inc
12 /* Short forms of external names for systems with brain-damaged linkers. */
14 #ifdef NEED_SHORT_EXTERNAL_NAMES
15 #define jsimd_can_convsamp jSCanConv
16 #define jsimd_can_convsamp_float jSCanConvF
17 #define jsimd_convsamp jSConv
18 #define jsimd_convsamp_float jSConvF
19 #define jsimd_can_fdct_islow jSCanFDCTIS
20 #define jsimd_can_fdct_ifast jSCanFDCTIF
21 #define jsimd_can_fdct_float jSCanFDCTFl
22 #define jsimd_fdct_islow jSFDCTIS
23 #define jsimd_fdct_ifast jSFDCTIF
24 #define jsimd_fdct_float jSFDCTFl
25 #define jsimd_can_quantize jSCanQuant
26 #define jsimd_can_quantize_float jSCanQuantF
27 #define jsimd_quantize jSQuant
28 #define jsimd_quantize_float jSQuantF
29 #define jsimd_can_idct_2x2 jSCanIDCT22
30 #define jsimd_can_idct_4x4 jSCanIDCT44
31 #define jsimd_idct_2x2 jSIDCT22
32 #define jsimd_idct_4x4 jSIDCT44
33 #define jsimd_can_idct_islow jSCanIDCTIS
34 #define jsimd_can_idct_ifast jSCanIDCTIF
35 #define jsimd_can_idct_float jSCanIDCTFl
36 #define jsimd_idct_islow jSIDCTIS
37 #define jsimd_idct_ifast jSIDCTIF
38 #define jsimd_idct_float jSIDCTFl
39 #endif /* NEED_SHORT_EXTERNAL_NAMES */
41 EXTERN(int) jsimd_can_convsamp
JPP((void));
42 EXTERN(int) jsimd_can_convsamp_float
JPP((void));
44 EXTERN(void) jsimd_convsamp
JPP((JSAMPARRAY sample_data
,
46 DCTELEM
* workspace
));
47 EXTERN(void) jsimd_convsamp_float
JPP((JSAMPARRAY sample_data
,
49 FAST_FLOAT
* workspace
));
51 EXTERN(int) jsimd_can_fdct_islow
JPP((void));
52 EXTERN(int) jsimd_can_fdct_ifast
JPP((void));
53 EXTERN(int) jsimd_can_fdct_float
JPP((void));
55 EXTERN(void) jsimd_fdct_islow
JPP((DCTELEM
* data
));
56 EXTERN(void) jsimd_fdct_ifast
JPP((DCTELEM
* data
));
57 EXTERN(void) jsimd_fdct_float
JPP((FAST_FLOAT
* data
));
59 EXTERN(int) jsimd_can_quantize
JPP((void));
60 EXTERN(int) jsimd_can_quantize_float
JPP((void));
62 EXTERN(void) jsimd_quantize
JPP((JCOEFPTR coef_block
,
64 DCTELEM
* workspace
));
65 EXTERN(void) jsimd_quantize_float
JPP((JCOEFPTR coef_block
,
66 FAST_FLOAT
* divisors
,
67 FAST_FLOAT
* workspace
));
69 EXTERN(int) jsimd_can_idct_2x2
JPP((void));
70 EXTERN(int) jsimd_can_idct_4x4
JPP((void));
72 EXTERN(void) jsimd_idct_2x2
JPP((j_decompress_ptr cinfo
,
73 jpeg_component_info
* compptr
,
75 JSAMPARRAY output_buf
,
76 JDIMENSION output_col
));
77 EXTERN(void) jsimd_idct_4x4
JPP((j_decompress_ptr cinfo
,
78 jpeg_component_info
* compptr
,
80 JSAMPARRAY output_buf
,
81 JDIMENSION output_col
));
83 EXTERN(int) jsimd_can_idct_islow
JPP((void));
84 EXTERN(int) jsimd_can_idct_ifast
JPP((void));
85 EXTERN(int) jsimd_can_idct_float
JPP((void));
87 EXTERN(void) jsimd_idct_islow
JPP((j_decompress_ptr cinfo
,
88 jpeg_component_info
* compptr
,
90 JSAMPARRAY output_buf
,
91 JDIMENSION output_col
));
92 EXTERN(void) jsimd_idct_ifast
JPP((j_decompress_ptr cinfo
,
93 jpeg_component_info
* compptr
,
95 JSAMPARRAY output_buf
,
96 JDIMENSION output_col
));
97 EXTERN(void) jsimd_idct_float
JPP((j_decompress_ptr cinfo
,
98 jpeg_component_info
* compptr
,
100 JSAMPARRAY output_buf
,
101 JDIMENSION output_col
));