OLD | NEW |
(Empty) | |
| 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. |
| 6 |
| 7 ; |
| 8 ; Automatically generated include file from jsimdcfg.inc.h |
| 9 ; |
| 10 |
| 11 #define JPEG_INTERNALS |
| 12 |
| 13 #include "../jpeglib.h" |
| 14 #include "../jconfig.h" |
| 15 #include "../jmorecfg.h" |
| 16 #include "jsimd.h" |
| 17 |
| 18 #define define(var) %define _cpp_protection_##var |
| 19 #define definev(var) %define _cpp_protection_##var var |
| 20 |
| 21 ; |
| 22 ; -- jpeglib.h |
| 23 ; |
| 24 |
| 25 definev(DCTSIZE) |
| 26 definev(DCTSIZE2) |
| 27 |
| 28 ; |
| 29 ; -- jmorecfg.h |
| 30 ; |
| 31 |
| 32 definev(RGB_RED) |
| 33 definev(RGB_GREEN) |
| 34 definev(RGB_BLUE) |
| 35 |
| 36 definev(RGB_PIXELSIZE) |
| 37 |
| 38 ; Representation of a single sample (pixel element value). |
| 39 ; On this SIMD implementation, this must be 'unsigned char'. |
| 40 ; |
| 41 |
| 42 %define JSAMPLE byte ; unsigned char |
| 43 %define SIZEOF_JSAMPLE SIZEOF_BYTE ; sizeof(JSAMPLE) |
| 44 |
| 45 definev(CENTERJSAMPLE) |
| 46 |
| 47 ; Representation of a DCT frequency coefficient. |
| 48 ; On this SIMD implementation, this must be 'short'. |
| 49 ; |
| 50 %define JCOEF word ; short |
| 51 %define SIZEOF_JCOEF SIZEOF_WORD ; sizeof(JCOEF) |
| 52 |
| 53 ; Datatype used for image dimensions. |
| 54 ; On this SIMD implementation, this must be 'unsigned int'. |
| 55 ; |
| 56 %define JDIMENSION dword ; unsigned int |
| 57 %define SIZEOF_JDIMENSION SIZEOF_DWORD ; sizeof(JDIMENSION) |
| 58 |
| 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) |
| 67 |
| 68 ; |
| 69 ; -- jdct.h |
| 70 ; |
| 71 |
| 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). |
| 75 ; |
| 76 %define DCTELEM word ; short |
| 77 %define SIZEOF_DCTELEM SIZEOF_WORD ; sizeof(DCTELEM) |
| 78 |
| 79 %define FAST_FLOAT FP32 ; float |
| 80 %define SIZEOF_FAST_FLOAT SIZEOF_FP32 ; sizeof(FAST_FLOAT) |
| 81 |
| 82 ; To maximize parallelism, Type MULTIPLIER is changed to short. |
| 83 ; |
| 84 %define ISLOW_MULT_TYPE word ; must be short |
| 85 %define SIZEOF_ISLOW_MULT_TYPE SIZEOF_WORD ; sizeof(ISLOW_MULT_TYPE) |
| 86 |
| 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 |
| 90 |
| 91 %define FLOAT_MULT_TYPE FP32 ; must be float |
| 92 %define SIZEOF_FLOAT_MULT_TYPE SIZEOF_FP32 ; sizeof(FLOAT_MULT_TYPE) |
| 93 |
| 94 ; |
| 95 ; -- jsimd.h |
| 96 ; |
| 97 |
| 98 definev(JSIMD_NONE) |
| 99 definev(JSIMD_MMX) |
| 100 definev(JSIMD_3DNOW) |
| 101 definev(JSIMD_SSE) |
| 102 definev(JSIMD_SSE2) |
| 103 |
| 104 ; Short forms of external names for systems with brain-damaged linkers. |
| 105 ; |
| 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 */ |
| 168 |
OLD | NEW |