mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-29 21:04:22 +08:00
x86: change representation of extension opcode
Having a "None" field in the vast majority of entries is needlessly cluttering the overall table. Instead of this being a separate field, use a representation matching that of Intel SDM and AMD PM for the main use of the field: Append the value after a / as the separator.
This commit is contained in:
@ -1299,8 +1299,10 @@ output_i386_opcode (FILE *table, const char *name, char *str,
|
|||||||
/* Find base_opcode. */
|
/* Find base_opcode. */
|
||||||
base_opcode = next_field (str, ',', &str, last);
|
base_opcode = next_field (str, ',', &str, last);
|
||||||
|
|
||||||
/* Find extension_opcode. */
|
/* Find extension_opcode, if any. */
|
||||||
extension_opcode = next_field (str, ',', &str, last);
|
extension_opcode = strchr (base_opcode, '/');
|
||||||
|
if (extension_opcode)
|
||||||
|
*extension_opcode++ = '\0';
|
||||||
|
|
||||||
/* Find cpu_flags. */
|
/* Find cpu_flags. */
|
||||||
cpu_flags = next_field (str, ',', &str, last);
|
cpu_flags = next_field (str, ',', &str, last);
|
||||||
@ -1385,7 +1387,8 @@ output_i386_opcode (FILE *table, const char *name, char *str,
|
|||||||
filename, lineno, name, 2 * length, opcode);
|
filename, lineno, name, 2 * length, opcode);
|
||||||
|
|
||||||
fprintf (table, " { \"%s\", 0x%0*llx%s, %lu, %s,\n",
|
fprintf (table, " { \"%s\", 0x%0*llx%s, %lu, %s,\n",
|
||||||
name, 2 * (int)length, opcode, end, i, extension_opcode);
|
name, 2 * (int)length, opcode, end, i,
|
||||||
|
extension_opcode ? extension_opcode : "None");
|
||||||
|
|
||||||
process_i386_opcode_modifier (table, opcode_modifier, space, prefix,
|
process_i386_opcode_modifier (table, opcode_modifier, space, prefix,
|
||||||
operand_types, lineno);
|
operand_types, lineno);
|
||||||
|
4417
opcodes/i386-opc.tbl
4417
opcodes/i386-opc.tbl
File diff suppressed because it is too large
Load Diff
@ -58995,7 +58995,7 @@ static const insn_template i386_optab[] =
|
|||||||
1, 0, 0, 0, 0, 0 } },
|
1, 0, 0, 0, 0, 0 } },
|
||||||
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
1, 0, 0, 0, 0, 0 } } } },
|
1, 0, 0, 0, 0, 0 } } } },
|
||||||
{ "prefetchit0", 0x18, 1, 0x7,
|
{ "prefetchit0", 0x18, 1, 7,
|
||||||
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
|
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0 },
|
0, 0 },
|
||||||
@ -59008,7 +59008,7 @@ static const insn_template i386_optab[] =
|
|||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
|
||||||
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
|
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0 } } } },
|
0, 0, 0, 0, 0, 0 } } } },
|
||||||
{ "prefetchit1", 0x18, 1, 0x6,
|
{ "prefetchit1", 0x18, 1, 6,
|
||||||
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
|
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0 },
|
0, 0 },
|
||||||
|
Reference in New Issue
Block a user