* dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog,
[deliverable/binutils-gdb.git] / opcodes / i386-gen.c
index 515e2f7753102d8a7b833cae15b4da6fdfccc0fb..f7e93697c3ecdf10642ae586b87dd4bf639f3478 100644 (file)
@@ -100,6 +100,8 @@ static initializer cpu_flag_init [] =
     "CpuVMX" },
   { "CPU_SMX_FLAGS",
     "CpuSMX" },
+  { "CPU_XSAVE_FLAGS",
+    "CpuXsave" },
   { "CPU_3DNOW_FLAGS",
     "CpuMMX|Cpu3dnow" },
   { "CPU_3DNOWA_FLAGS",
@@ -186,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",
@@ -245,6 +249,7 @@ static bitfield cpu_flags[] =
   BITFIELD (CpuSMX),
   BITFIELD (CpuABM),
   BITFIELD (CpuLM),
+  BITFIELD (CpuXsave),
   BITFIELD (Cpu64),
   BITFIELD (CpuNo64),
 #ifdef CpuUnused
@@ -799,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");
@@ -860,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);
This page took 0.023745 seconds and 4 git commands to generate.