1#ifndef MYISAMPACK_INCLUDED
2#define MYISAMPACK_INCLUDED
51 return (
int32)((A[0] & 128) ? ((255U << 24) | ((
uint32)(A[0]) << 16) |
53 : (((
uint32)(A[0]) << 16) |
108#define mi_int1store(T, A) *((uchar *)(T)) = (uchar)(A)
110#define mi_int2store(T, A) \
112 const uint def_temp = (uint)(A); \
113 ((uchar *)(T))[1] = (uchar)(def_temp); \
114 ((uchar *)(T))[0] = (uchar)(def_temp >> 8); \
116#define mi_int3store(T, A) \
118 const ulong def_temp = (ulong)(A); \
119 ((uchar *)(T))[2] = (uchar)(def_temp); \
120 ((uchar *)(T))[1] = (uchar)(def_temp >> 8); \
121 ((uchar *)(T))[0] = (uchar)(def_temp >> 16); \
123#define mi_int4store(T, A) \
125 const ulong def_temp = (ulong)(A); \
126 ((uchar *)(T))[3] = (uchar)(def_temp); \
127 ((uchar *)(T))[2] = (uchar)(def_temp >> 8); \
128 ((uchar *)(T))[1] = (uchar)(def_temp >> 16); \
129 ((uchar *)(T))[0] = (uchar)(def_temp >> 24); \
131#define mi_int5store(T, A) \
133 const ulong def_temp = (ulong)(A), def_temp2 = (ulong)((A) >> 32); \
134 ((uchar *)(T))[4] = (uchar)(def_temp); \
135 ((uchar *)(T))[3] = (uchar)(def_temp >> 8); \
136 ((uchar *)(T))[2] = (uchar)(def_temp >> 16); \
137 ((uchar *)(T))[1] = (uchar)(def_temp >> 24); \
138 ((uchar *)(T))[0] = (uchar)(def_temp2); \
140#define mi_int6store(T, A) \
142 const ulong def_temp = (ulong)(A), def_temp2 = (ulong)((A) >> 32); \
143 ((uchar *)(T))[5] = (uchar)(def_temp); \
144 ((uchar *)(T))[4] = (uchar)(def_temp >> 8); \
145 ((uchar *)(T))[3] = (uchar)(def_temp >> 16); \
146 ((uchar *)(T))[2] = (uchar)(def_temp >> 24); \
147 ((uchar *)(T))[1] = (uchar)(def_temp2); \
148 ((uchar *)(T))[0] = (uchar)(def_temp2 >> 8); \
150#define mi_int7store(T, A) \
152 const ulong def_temp = (ulong)(A), def_temp2 = (ulong)((A) >> 32); \
153 ((uchar *)(T))[6] = (uchar)(def_temp); \
154 ((uchar *)(T))[5] = (uchar)(def_temp >> 8); \
155 ((uchar *)(T))[4] = (uchar)(def_temp >> 16); \
156 ((uchar *)(T))[3] = (uchar)(def_temp >> 24); \
157 ((uchar *)(T))[2] = (uchar)(def_temp2); \
158 ((uchar *)(T))[1] = (uchar)(def_temp2 >> 8); \
159 ((uchar *)(T))[0] = (uchar)(def_temp2 >> 16); \
161#define mi_int8store(T, A) \
163 const ulong def_temp3 = (ulong)(A), def_temp4 = (ulong)((A) >> 32); \
164 mi_int4store((uchar *)(T) + 0, def_temp4); \
165 mi_int4store((uchar *)(T) + 4, def_temp3); \
168#ifdef WORDS_BIGENDIAN
170#define mi_float4store(T, A) \
172 ((uchar *)(T))[0] = ((uchar *)&A)[0]; \
173 ((uchar *)(T))[1] = ((uchar *)&A)[1]; \
174 ((uchar *)(T))[2] = ((uchar *)&A)[2]; \
175 ((uchar *)(T))[3] = ((uchar *)&A)[3]; \
180 ((
uchar *)&def_temp)[0] =
M[0];
181 ((
uchar *)&def_temp)[1] =
M[1];
182 ((
uchar *)&def_temp)[2] =
M[2];
183 ((
uchar *)&def_temp)[3] =
M[3];
187#define mi_float8store(T, V) \
189 ((uchar *)(T))[0] = ((uchar *)&V)[0]; \
190 ((uchar *)(T))[1] = ((uchar *)&V)[1]; \
191 ((uchar *)(T))[2] = ((uchar *)&V)[2]; \
192 ((uchar *)(T))[3] = ((uchar *)&V)[3]; \
193 ((uchar *)(T))[4] = ((uchar *)&V)[4]; \
194 ((uchar *)(T))[5] = ((uchar *)&V)[5]; \
195 ((uchar *)(T))[6] = ((uchar *)&V)[6]; \
196 ((uchar *)(T))[7] = ((uchar *)&V)[7]; \
201 ((
uchar *)&def_temp)[0] =
M[0];
202 ((
uchar *)&def_temp)[1] =
M[1];
203 ((
uchar *)&def_temp)[2] =
M[2];
204 ((
uchar *)&def_temp)[3] =
M[3];
205 ((
uchar *)&def_temp)[4] =
M[4];
206 ((
uchar *)&def_temp)[5] =
M[5];
207 ((
uchar *)&def_temp)[6] =
M[6];
208 ((
uchar *)&def_temp)[7] =
M[7];
213#define mi_float4store(T, A) \
215 ((uchar *)(T))[0] = ((uchar *)&A)[3]; \
216 ((uchar *)(T))[1] = ((uchar *)&A)[2]; \
217 ((uchar *)(T))[2] = ((uchar *)&A)[1]; \
218 ((uchar *)(T))[3] = ((uchar *)&A)[0]; \
223 ((
uchar *)&def_temp)[0] =
M[3];
224 ((
uchar *)&def_temp)[1] =
M[2];
225 ((
uchar *)&def_temp)[2] =
M[1];
226 ((
uchar *)&def_temp)[3] =
M[0];
230#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
231#define mi_float8store(T, V) \
233 ((uchar *)(T))[0] = ((uchar *)&V)[3]; \
234 ((uchar *)(T))[1] = ((uchar *)&V)[2]; \
235 ((uchar *)(T))[2] = ((uchar *)&V)[1]; \
236 ((uchar *)(T))[3] = ((uchar *)&V)[0]; \
237 ((uchar *)(T))[4] = ((uchar *)&V)[7]; \
238 ((uchar *)(T))[5] = ((uchar *)&V)[6]; \
239 ((uchar *)(T))[6] = ((uchar *)&V)[5]; \
240 ((uchar *)(T))[7] = ((uchar *)&V)[4]; \
245 ((
uchar *)&def_temp)[0] =
M[3];
246 ((
uchar *)&def_temp)[1] =
M[2];
247 ((
uchar *)&def_temp)[2] =
M[1];
248 ((
uchar *)&def_temp)[3] =
M[0];
249 ((
uchar *)&def_temp)[4] =
M[7];
250 ((
uchar *)&def_temp)[5] =
M[6];
251 ((
uchar *)&def_temp)[6] =
M[5];
252 ((
uchar *)&def_temp)[7] =
M[4];
257#define mi_float8store(T, V) \
259 ((uchar *)(T))[0] = ((uchar *)&V)[7]; \
260 ((uchar *)(T))[1] = ((uchar *)&V)[6]; \
261 ((uchar *)(T))[2] = ((uchar *)&V)[5]; \
262 ((uchar *)(T))[3] = ((uchar *)&V)[4]; \
263 ((uchar *)(T))[4] = ((uchar *)&V)[3]; \
264 ((uchar *)(T))[5] = ((uchar *)&V)[2]; \
265 ((uchar *)(T))[6] = ((uchar *)&V)[1]; \
266 ((uchar *)(T))[7] = ((uchar *)&V)[0]; \
271 ((
uchar *)&def_temp)[0] =
M[7];
272 ((
uchar *)&def_temp)[1] =
M[6];
273 ((
uchar *)&def_temp)[2] =
M[5];
274 ((
uchar *)&def_temp)[3] =
M[4];
275 ((
uchar *)&def_temp)[4] =
M[3];
276 ((
uchar *)&def_temp)[5] =
M[2];
277 ((
uchar *)&def_temp)[6] =
M[1];
278 ((
uchar *)&def_temp)[7] =
M[0];
285#define mi_rowstore(T, A) mi_int8store(T, A)
286#define mi_rowkorr(T) mi_uint8korr(T)
288#define mi_sizestore(T, A) mi_int8store(T, A)
289#define mi_sizekorr(T) mi_uint8korr(T)
#define M
Definition: ctype-tis620.cc:72
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:55
uint8_t uint8
Definition: my_inttypes.h:62
unsigned char uchar
Definition: my_inttypes.h:51
long long int longlong
Definition: my_inttypes.h:54
int16_t int16
Definition: my_inttypes.h:63
int8_t int8
Definition: my_inttypes.h:61
int32_t int32
Definition: my_inttypes.h:65
uint16_t uint16
Definition: my_inttypes.h:64
uint32_t uint32
Definition: my_inttypes.h:66
static int8 mi_sint1korr(const uchar *A)
Definition: myisampack.h:42
static uint32 mi_uint4korr(const uchar *A)
Definition: myisampack.h:70
static ulonglong mi_uint6korr(const uchar *A)
Definition: myisampack.h:81
static int16 mi_sint2korr(const uchar *A)
Definition: myisampack.h:46
static ulonglong mi_uint5korr(const uchar *A)
Definition: myisampack.h:75
static longlong mi_sint8korr(const uchar *A)
Definition: myisampack.h:103
static uint16 mi_uint2korr(const uchar *A)
Definition: myisampack.h:62
static ulonglong mi_uint8korr(const uchar *A)
Definition: myisampack.h:95
static int32 mi_sint3korr(const uchar *A)
Definition: myisampack.h:50
static uint8 mi_uint1korr(const uchar *A)
Definition: myisampack.h:44
static float mi_float4get(const uchar *M)
Definition: myisampack.h:221
static double mi_float8get(const uchar *M)
Definition: myisampack.h:269
static int32 mi_sint4korr(const uchar *A)
Definition: myisampack.h:57
static uint32 mi_uint3korr(const uchar *A)
Definition: myisampack.h:66
static ulonglong mi_uint7korr(const uchar *A)
Definition: myisampack.h:87