X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=opcodes%2Fi386-gen.c;h=f7e93697c3ecdf10642ae586b87dd4bf639f3478;hb=deae2a14a03a8cae07817ae03e4517fe4983d94e;hp=4f1b581c17e4071ad1ba4f19ed16b3abc69ae392;hpb=5c07affcae1a9698e488eefae0b1eb30d9743657;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c index 4f1b581c17..f7e93697c3 100644 --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -45,7 +45,7 @@ static initializer cpu_flag_init [] = { "CPU_GENERIC32_FLAGS", "Cpu186|Cpu286|Cpu386" }, { "CPU_GENERIC64_FLAGS", - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2" }, + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuSSE|CpuSSE2|CpuLM" }, { "CPU_NONE_FLAGS", "0" }, { "CPU_I186_FLAGS", @@ -63,53 +63,59 @@ static initializer cpu_flag_init [] = { "CPU_P2_FLAGS", "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuMMX" }, { "CPU_P3_FLAGS", - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuMMX|CpuMMX2|CpuSSE" }, + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuMMX|CpuSSE" }, { "CPU_P4_FLAGS", - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2" }, + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuSSE|CpuSSE2" }, { "CPU_NOCONA_FLAGS", - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuLM" }, + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuLM" }, { "CPU_CORE_FLAGS", - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3" }, + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3" }, { "CPU_CORE2_FLAGS", - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuLM" }, + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuLM" }, { "CPU_K6_FLAGS", "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuK6|CpuMMX" }, { "CPU_K6_2_FLAGS", "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuK6|CpuMMX|Cpu3dnow" }, { "CPU_ATHLON_FLAGS", - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA" }, + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuMMX|Cpu3dnow|Cpu3dnowA" }, { "CPU_K8_FLAGS", - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuK8|CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA|CpuSSE|CpuSSE2|CpuLM" }, + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuK8|CpuMMX|Cpu3dnow|Cpu3dnowA|CpuSSE|CpuSSE2|CpuLM" }, { "CPU_AMDFAM10_FLAGS", - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuK8|CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuLM" }, + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuK8|CpuMMX|Cpu3dnow|Cpu3dnowA|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuLM" }, { "CPU_MMX_FLAGS", "CpuMMX" }, { "CPU_SSE_FLAGS", - "CpuMMX|CpuMMX2|CpuSSE" }, + "CpuMMX|CpuSSE" }, { "CPU_SSE2_FLAGS", - "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2" }, + "CpuMMX|CpuSSE|CpuSSE2" }, { "CPU_SSE3_FLAGS", - "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3" }, + "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3" }, { "CPU_SSSE3_FLAGS", - "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3" }, + "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3" }, { "CPU_SSE4_1_FLAGS", - "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1" }, + "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1" }, { "CPU_SSE4_2_FLAGS", - "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2" }, + "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2" }, + { "CPU_VMX_FLAGS", + "CpuVMX" }, + { "CPU_SMX_FLAGS", + "CpuSMX" }, + { "CPU_XSAVE_FLAGS", + "CpuXsave" }, { "CPU_3DNOW_FLAGS", "CpuMMX|Cpu3dnow" }, { "CPU_3DNOWA_FLAGS", - "CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA" }, + "CpuMMX|Cpu3dnow|Cpu3dnowA" }, { "CPU_PADLOCK_FLAGS", "CpuPadLock" }, { "CPU_SVME_FLAGS", "CpuSVME" }, { "CPU_SSE4A_FLAGS", - "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a" }, + "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a" }, { "CPU_ABM_FLAGS", "CpuABM" }, { "CPU_SSE5_FLAGS", - "CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuSSE5"}, + "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuSSE5"}, }; static initializer operand_type_init [] = @@ -182,6 +188,8 @@ static initializer operand_type_init [] = "Reg32|Acc|Dword" }, { "OPERAND_TYPE_ACC64", "Reg64|Acc|Qword" }, + { "OPERAND_TYPE_INOUTPORTREG", + "InOutPortReg" }, { "OPERAND_TYPE_REG16_INOUTPORTREG", "Reg16|InOutPortReg" }, { "OPERAND_TYPE_DISP16_32", @@ -225,7 +233,6 @@ static bitfield cpu_flags[] = BITFIELD (CpuK6), BITFIELD (CpuK8), BITFIELD (CpuMMX), - BITFIELD (CpuMMX2), BITFIELD (CpuSSE), BITFIELD (CpuSSE2), BITFIELD (CpuSSE3), @@ -242,6 +249,7 @@ static bitfield cpu_flags[] = BITFIELD (CpuSMX), BITFIELD (CpuABM), BITFIELD (CpuLM), + BITFIELD (CpuXsave), BITFIELD (Cpu64), BITFIELD (CpuNo64), #ifdef CpuUnused @@ -796,6 +804,7 @@ process_i386_registers (FILE *table) char buf[2048]; char *str, *p, *last; char *reg_name, *reg_type, *reg_flags, *reg_num; + char *dw2_32_num, *dw2_64_num; filename = "i386-reg.tbl"; fp = fopen (filename, "r"); @@ -857,11 +866,24 @@ process_i386_registers (FILE *table) /* Find reg_num. */ reg_num = next_field (str, ',', &str); + if (str >= last) + abort (); + fprintf (table, " { \"%s\",\n ", reg_name); process_i386_operand_type (table, reg_type, 0, "\t"); - fprintf (table, ",\n %s, %s },\n", reg_flags, reg_num); + /* Find 32-bit Dwarf2 register number. */ + dw2_32_num = next_field (str, ',', &str); + + if (str >= last) + abort (); + + /* Find 64-bit Dwarf2 register number. */ + dw2_64_num = next_field (str, ',', &str); + + fprintf (table, ",\n %s, %s, { %s, %s } },\n", + reg_flags, reg_num, dw2_32_num, dw2_64_num); } fclose (fp);