| .. | .. |
|---|
| 362 | 362 | END { |
|---|
| 363 | 363 | if (awkchecked != "") |
|---|
| 364 | 364 | exit 1 |
|---|
| 365 | + |
|---|
| 366 | + print "#ifndef __BOOT_COMPRESSED\n" |
|---|
| 367 | + |
|---|
| 365 | 368 | # print escape opcode map's array |
|---|
| 366 | 369 | print "/* Escape opcode map array */" |
|---|
| 367 | 370 | print "const insn_attr_t * const inat_escape_tables[INAT_ESC_MAX + 1]" \ |
|---|
| .. | .. |
|---|
| 388 | 391 | for (j = 0; j < max_lprefix; j++) |
|---|
| 389 | 392 | if (atable[i,j]) |
|---|
| 390 | 393 | print " ["i"]["j"] = "atable[i,j]"," |
|---|
| 391 | | - print "};" |
|---|
| 394 | + print "};\n" |
|---|
| 395 | + |
|---|
| 396 | + print "#else /* !__BOOT_COMPRESSED */\n" |
|---|
| 397 | + |
|---|
| 398 | + print "/* Escape opcode map array */" |
|---|
| 399 | + print "static const insn_attr_t *inat_escape_tables[INAT_ESC_MAX + 1]" \ |
|---|
| 400 | + "[INAT_LSTPFX_MAX + 1];" |
|---|
| 401 | + print "" |
|---|
| 402 | + |
|---|
| 403 | + print "/* Group opcode map array */" |
|---|
| 404 | + print "static const insn_attr_t *inat_group_tables[INAT_GRP_MAX + 1]"\ |
|---|
| 405 | + "[INAT_LSTPFX_MAX + 1];" |
|---|
| 406 | + print "" |
|---|
| 407 | + |
|---|
| 408 | + print "/* AVX opcode map array */" |
|---|
| 409 | + print "static const insn_attr_t *inat_avx_tables[X86_VEX_M_MAX + 1]"\ |
|---|
| 410 | + "[INAT_LSTPFX_MAX + 1];" |
|---|
| 411 | + print "" |
|---|
| 412 | + |
|---|
| 413 | + print "static void inat_init_tables(void)" |
|---|
| 414 | + print "{" |
|---|
| 415 | + |
|---|
| 416 | + # print escape opcode map's array |
|---|
| 417 | + print "\t/* Print Escape opcode map array */" |
|---|
| 418 | + for (i = 0; i < geid; i++) |
|---|
| 419 | + for (j = 0; j < max_lprefix; j++) |
|---|
| 420 | + if (etable[i,j]) |
|---|
| 421 | + print "\tinat_escape_tables["i"]["j"] = "etable[i,j]";" |
|---|
| 422 | + print "" |
|---|
| 423 | + |
|---|
| 424 | + # print group opcode map's array |
|---|
| 425 | + print "\t/* Print Group opcode map array */" |
|---|
| 426 | + for (i = 0; i < ggid; i++) |
|---|
| 427 | + for (j = 0; j < max_lprefix; j++) |
|---|
| 428 | + if (gtable[i,j]) |
|---|
| 429 | + print "\tinat_group_tables["i"]["j"] = "gtable[i,j]";" |
|---|
| 430 | + print "" |
|---|
| 431 | + # print AVX opcode map's array |
|---|
| 432 | + print "\t/* Print AVX opcode map array */" |
|---|
| 433 | + for (i = 0; i < gaid; i++) |
|---|
| 434 | + for (j = 0; j < max_lprefix; j++) |
|---|
| 435 | + if (atable[i,j]) |
|---|
| 436 | + print "\tinat_avx_tables["i"]["j"] = "atable[i,j]";" |
|---|
| 437 | + |
|---|
| 438 | + print "}" |
|---|
| 439 | + print "#endif" |
|---|
| 392 | 440 | } |
|---|
| 393 | 441 | |
|---|