196 {
197 static const char *errTbl[] = {
198 "none",
199 "bad addressing",
200 "code is too big",
201 "bad scale",
202 "esp can't be index",
203 "bad combination",
204 "bad size of register",
205 "imm is too big",
206 "bad align",
207 "label is redefined",
208 "label is too far",
209 "label is not found",
210 "code is not copyable",
211 "bad parameter",
212 "can't protect",
213 "can't use 64bit disp(use (void*))",
214 "offset is too big",
215 "MEM size is not specified",
216 "bad mem size",
217 "bad st combination",
218 "over local label",
219 "under local label",
220 "can't alloc",
221 "T_SHORT is not supported in AutoGrow",
222 "bad protect mode",
223 "bad pNum",
224 "bad tNum",
225 "bad vsib addressing",
226 "can't convert",
227 "label is not set by L()",
228 "label is already set by L()",
229 "bad label string",
230 "err munmap",
231 "opmask is already set",
232 "rounding is already set",
233 "k0 is invalid",
234 "evex is invalid",
235 "sae(suppress all exceptions) is invalid",
236 "er(embedded rounding) is invalid",
237 "invalid broadcast",
238 "invalid opmask with memory",
239 "invalid zero",
240 "invalid rip in AutoGrow",
241 "invalid mib address",
242 "internal error",
243 };
244 assert((size_t)err_ < sizeof(errTbl) / sizeof(*errTbl));
245 return errTbl[err_];
246 }