1#ifndef MYISAMPACK_INCLUDED
2#define MYISAMPACK_INCLUDED
52 return (
int32)((A[0] & 128) ? ((255U << 24) | ((
uint32)(A[0]) << 16) |
54 : (((
uint32)(A[0]) << 16) |
109#define mi_int1store(T, A) *((uchar *)(T)) = (uchar)(A)
111#define mi_int2store(T, A) \
113 const uint def_temp = (uint)(A); \
114 ((uchar *)(T))[1] = (uchar)(def_temp); \
115 ((uchar *)(T))[0] = (uchar)(def_temp >> 8); \
117#define mi_int3store(T, A) \
119 const ulong def_temp = (ulong)(A); \
120 ((uchar *)(T))[2] = (uchar)(def_temp); \
121 ((uchar *)(T))[1] = (uchar)(def_temp >> 8); \
122 ((uchar *)(T))[0] = (uchar)(def_temp >> 16); \
124#define mi_int4store(T, A) \
126 const ulong def_temp = (ulong)(A); \
127 ((uchar *)(T))[3] = (uchar)(def_temp); \
128 ((uchar *)(T))[2] = (uchar)(def_temp >> 8); \
129 ((uchar *)(T))[1] = (uchar)(def_temp >> 16); \
130 ((uchar *)(T))[0] = (uchar)(def_temp >> 24); \
132#define mi_int5store(T, A) \
134 const ulong def_temp = (ulong)(A), def_temp2 = (ulong)((A) >> 32); \
135 ((uchar *)(T))[4] = (uchar)(def_temp); \
136 ((uchar *)(T))[3] = (uchar)(def_temp >> 8); \
137 ((uchar *)(T))[2] = (uchar)(def_temp >> 16); \
138 ((uchar *)(T))[1] = (uchar)(def_temp >> 24); \
139 ((uchar *)(T))[0] = (uchar)(def_temp2); \
141#define mi_int6store(T, A) \
143 const ulong def_temp = (ulong)(A), def_temp2 = (ulong)((A) >> 32); \
144 ((uchar *)(T))[5] = (uchar)(def_temp); \
145 ((uchar *)(T))[4] = (uchar)(def_temp >> 8); \
146 ((uchar *)(T))[3] = (uchar)(def_temp >> 16); \
147 ((uchar *)(T))[2] = (uchar)(def_temp >> 24); \
148 ((uchar *)(T))[1] = (uchar)(def_temp2); \
149 ((uchar *)(T))[0] = (uchar)(def_temp2 >> 8); \
151#define mi_int7store(T, A) \
153 const ulong def_temp = (ulong)(A), def_temp2 = (ulong)((A) >> 32); \
154 ((uchar *)(T))[6] = (uchar)(def_temp); \
155 ((uchar *)(T))[5] = (uchar)(def_temp >> 8); \
156 ((uchar *)(T))[4] = (uchar)(def_temp >> 16); \
157 ((uchar *)(T))[3] = (uchar)(def_temp >> 24); \
158 ((uchar *)(T))[2] = (uchar)(def_temp2); \
159 ((uchar *)(T))[1] = (uchar)(def_temp2 >> 8); \
160 ((uchar *)(T))[0] = (uchar)(def_temp2 >> 16); \
162#define mi_int8store(T, A) \
164 const ulong def_temp3 = (ulong)(A), def_temp4 = (ulong)((A) >> 32); \
165 mi_int4store((uchar *)(T) + 0, def_temp4); \
166 mi_int4store((uchar *)(T) + 4, def_temp3); \
169#ifdef WORDS_BIGENDIAN
171#define mi_float4store(T, A) \
173 ((uchar *)(T))[0] = ((uchar *)&A)[0]; \
174 ((uchar *)(T))[1] = ((uchar *)&A)[1]; \
175 ((uchar *)(T))[2] = ((uchar *)&A)[2]; \
176 ((uchar *)(T))[3] = ((uchar *)&A)[3]; \
181 ((
uchar *)&def_temp)[0] =
M[0];
182 ((
uchar *)&def_temp)[1] =
M[1];
183 ((
uchar *)&def_temp)[2] =
M[2];
184 ((
uchar *)&def_temp)[3] =
M[3];
188#define mi_float8store(T, V) \
190 ((uchar *)(T))[0] = ((uchar *)&V)[0]; \
191 ((uchar *)(T))[1] = ((uchar *)&V)[1]; \
192 ((uchar *)(T))[2] = ((uchar *)&V)[2]; \
193 ((uchar *)(T))[3] = ((uchar *)&V)[3]; \
194 ((uchar *)(T))[4] = ((uchar *)&V)[4]; \
195 ((uchar *)(T))[5] = ((uchar *)&V)[5]; \
196 ((uchar *)(T))[6] = ((uchar *)&V)[6]; \
197 ((uchar *)(T))[7] = ((uchar *)&V)[7]; \
202 ((
uchar *)&def_temp)[0] =
M[0];
203 ((
uchar *)&def_temp)[1] =
M[1];
204 ((
uchar *)&def_temp)[2] =
M[2];
205 ((
uchar *)&def_temp)[3] =
M[3];
206 ((
uchar *)&def_temp)[4] =
M[4];
207 ((
uchar *)&def_temp)[5] =
M[5];
208 ((
uchar *)&def_temp)[6] =
M[6];
209 ((
uchar *)&def_temp)[7] =
M[7];
214#define mi_float4store(T, A) \
216 ((uchar *)(T))[0] = ((uchar *)&A)[3]; \
217 ((uchar *)(T))[1] = ((uchar *)&A)[2]; \
218 ((uchar *)(T))[2] = ((uchar *)&A)[1]; \
219 ((uchar *)(T))[3] = ((uchar *)&A)[0]; \
224 ((
uchar *)&def_temp)[0] =
M[3];
225 ((
uchar *)&def_temp)[1] =
M[2];
226 ((
uchar *)&def_temp)[2] =
M[1];
227 ((
uchar *)&def_temp)[3] =
M[0];
231#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
232#define mi_float8store(T, V) \
234 ((uchar *)(T))[0] = ((uchar *)&V)[3]; \
235 ((uchar *)(T))[1] = ((uchar *)&V)[2]; \
236 ((uchar *)(T))[2] = ((uchar *)&V)[1]; \
237 ((uchar *)(T))[3] = ((uchar *)&V)[0]; \
238 ((uchar *)(T))[4] = ((uchar *)&V)[7]; \
239 ((uchar *)(T))[5] = ((uchar *)&V)[6]; \
240 ((uchar *)(T))[6] = ((uchar *)&V)[5]; \
241 ((uchar *)(T))[7] = ((uchar *)&V)[4]; \
246 ((
uchar *)&def_temp)[0] =
M[3];
247 ((
uchar *)&def_temp)[1] =
M[2];
248 ((
uchar *)&def_temp)[2] =
M[1];
249 ((
uchar *)&def_temp)[3] =
M[0];
250 ((
uchar *)&def_temp)[4] =
M[7];
251 ((
uchar *)&def_temp)[5] =
M[6];
252 ((
uchar *)&def_temp)[6] =
M[5];
253 ((
uchar *)&def_temp)[7] =
M[4];
258#define mi_float8store(T, V) \
260 ((uchar *)(T))[0] = ((uchar *)&V)[7]; \
261 ((uchar *)(T))[1] = ((uchar *)&V)[6]; \
262 ((uchar *)(T))[2] = ((uchar *)&V)[5]; \
263 ((uchar *)(T))[3] = ((uchar *)&V)[4]; \
264 ((uchar *)(T))[4] = ((uchar *)&V)[3]; \
265 ((uchar *)(T))[5] = ((uchar *)&V)[2]; \
266 ((uchar *)(T))[6] = ((uchar *)&V)[1]; \
267 ((uchar *)(T))[7] = ((uchar *)&V)[0]; \
272 ((
uchar *)&def_temp)[0] =
M[7];
273 ((
uchar *)&def_temp)[1] =
M[6];
274 ((
uchar *)&def_temp)[2] =
M[5];
275 ((
uchar *)&def_temp)[3] =
M[4];
276 ((
uchar *)&def_temp)[4] =
M[3];
277 ((
uchar *)&def_temp)[5] =
M[2];
278 ((
uchar *)&def_temp)[6] =
M[1];
279 ((
uchar *)&def_temp)[7] =
M[0];
286#define mi_rowstore(T, A) mi_int8store(T, A)
287#define mi_rowkorr(T) mi_uint8korr(T)
289#define mi_sizestore(T, A) mi_int8store(T, A)
290#define mi_sizekorr(T) mi_uint8korr(T)
#define M
Definition: ctype-tis620.cc:73
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
uint8_t uint8
Definition: my_inttypes.h:63
unsigned char uchar
Definition: my_inttypes.h:52
long long int longlong
Definition: my_inttypes.h:55
int16_t int16
Definition: my_inttypes.h:64
int8_t int8
Definition: my_inttypes.h:62
int32_t int32
Definition: my_inttypes.h:66
uint16_t uint16
Definition: my_inttypes.h:65
uint32_t uint32
Definition: my_inttypes.h:67
static int8 mi_sint1korr(const uchar *A)
Definition: myisampack.h:43
static uint32 mi_uint4korr(const uchar *A)
Definition: myisampack.h:71
static ulonglong mi_uint6korr(const uchar *A)
Definition: myisampack.h:82
static int16 mi_sint2korr(const uchar *A)
Definition: myisampack.h:47
static ulonglong mi_uint5korr(const uchar *A)
Definition: myisampack.h:76
static longlong mi_sint8korr(const uchar *A)
Definition: myisampack.h:104
static uint16 mi_uint2korr(const uchar *A)
Definition: myisampack.h:63
static ulonglong mi_uint8korr(const uchar *A)
Definition: myisampack.h:96
static int32 mi_sint3korr(const uchar *A)
Definition: myisampack.h:51
static uint8 mi_uint1korr(const uchar *A)
Definition: myisampack.h:45
static float mi_float4get(const uchar *M)
Definition: myisampack.h:222
static double mi_float8get(const uchar *M)
Definition: myisampack.h:270
static int32 mi_sint4korr(const uchar *A)
Definition: myisampack.h:58
static uint32 mi_uint3korr(const uchar *A)
Definition: myisampack.h:67
static ulonglong mi_uint7korr(const uchar *A)
Definition: myisampack.h:88