From badc00202024619e1c868b8cf70fe6351fc028c3 Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Mon, 4 Sep 2017 11:33:56 +0100 Subject: [PATCH] Let i386_target_description return tdesc_i386_mmx 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 * 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 | 9 +++++++++ gdb/i386-go32-tdep.c | 3 ++- gdb/i386-tdep.c | 4 ++++ gdb/i386-tdep.h | 3 --- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e965e26..3068050 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,14 @@ 2017-09-04 Yao Qi + * 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 + * i386-fbsd-tdep.c (i386fbsd_core_read_xcr0): Return X86_XSTATE_SSE_MASK instead of 0. diff --git a/gdb/i386-go32-tdep.c b/gdb/i386-go32-tdep.c index 5bd4857..6778e52 100644 --- a/gdb/i386-go32-tdep.c +++ b/gdb/i386-go32-tdep.c @@ -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, diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 9d0dd3d..d162e92 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -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; } diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h index 1ce89fc..99b89e7 100644 --- a/gdb/i386-tdep.h +++ b/gdb/i386-tdep.h @@ -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); -- 2.7.4