Let i386_target_description return tdesc_i386_mmx
authorYao Qi <yao.qi@linaro.org>
Mon, 4 Sep 2017 10:33:56 +0000 (11:33 +0100)
committerYao Qi <yao.qi@linaro.org>
Mon, 4 Sep 2017 10:33:56 +0000 (11:33 +0100)
This patch remove the usage of tdesc_i386_mmx in i386-go32-tdep.c, and use
i386_target_description to get it instead.

gdb:

2017-09-04  Yao Qi  <yao.qi@linaro.org>

* i386-go32-tdep.c: Include x86-xstate.h.
(i386_go32_init_abi): Call i386_target_description.
* i386-tdep.c (i386_target_description): Return tdesc_i386_mmx
if xcr0 is X86_XSTATE_X87_MASK.
* i386-tdep.h (tdesc_i386): Remove the declaration.
(tdesc_i386_mmx): Likewise.

gdb/ChangeLog
gdb/i386-go32-tdep.c
gdb/i386-tdep.c
gdb/i386-tdep.h

index e965e26d739d3e24b00d33685c8a79d09e53c5ec..306805025a507bfe9fc7eb1cc3d2db4d12c1456e 100644 (file)
@@ -1,3 +1,12 @@
+2017-09-04  Yao Qi  <yao.qi@linaro.org>
+
+       * i386-go32-tdep.c: Include x86-xstate.h.
+       (i386_go32_init_abi): Call i386_target_description.
+       * i386-tdep.c (i386_target_description): Return tdesc_i386_mmx
+       if xcr0 is X86_XSTATE_X87_MASK.
+       * i386-tdep.h (tdesc_i386): Remove the declaration.
+       (tdesc_i386_mmx): Likewise.
+
 2017-09-04  Yao Qi  <yao.qi@linaro.org>
 
        * i386-fbsd-tdep.c (i386fbsd_core_read_xcr0): Return
index 5bd48579778cf84092bcf168bedfcd692a87dfeb..6778e5238da99531c991dfbe8890408f2ce2e85a 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "defs.h"
 #include "i386-tdep.h"
+#include "x86-xstate.h"
 #include "target-descriptions.h"
 #include "osabi.h"
 
@@ -34,7 +35,7 @@ i386_go32_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
   /* DJGPP does not support the SSE registers.  */
   if (!tdesc_has_registers (info.target_desc))
-    tdep->tdesc = tdesc_i386_mmx;
+    tdep->tdesc = i386_target_description (X86_XSTATE_X87_MASK);
 
   /* Native compiler is GCC, which uses the SVR4 register numbering
      even in COFF and STABS.  See the comment in i386_gdbarch_init,
index 9d0dd3d5da56a28b61e46455d9d3339f6f7dbc5b..d162e9267e5340c88c1c2acad44f02a3799bb95d 100644 (file)
@@ -8730,6 +8730,10 @@ i386_target_description (uint64_t xcr0)
       return tdesc_i386_mpx;
     case X86_XSTATE_AVX_MASK:
       return tdesc_i386_avx;
+    case X86_XSTATE_SSE_MASK:
+      return tdesc_i386;
+    case X86_XSTATE_X87_MASK:
+      return tdesc_i386_mmx;
     default:
       return tdesc_i386;
     }
index 1ce89fcf653f0057626b02059b357d7edb56b916..99b89e747dfb4bd22d417ff3fccf74a4830a4470 100644 (file)
@@ -339,9 +339,6 @@ enum record_i386_regnum
 /* Size of the largest register.  */
 #define I386_MAX_REGISTER_SIZE 64
 
-extern struct target_desc *tdesc_i386;
-extern struct target_desc *tdesc_i386_mmx;
-
 /* Types for i386-specific registers.  */
 extern struct type *i387_ext_type (struct gdbarch *gdbarch);