This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] [PowerPC] Reject tdescs with VSX and no FPU or Altivec


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=81ab84fd6cdaab121988e0c424f8cdc0ae472e14

commit 81ab84fd6cdaab121988e0c424f8cdc0ae472e14
Author: Pedro Franco de Carvalho <pedromfc@linux.ibm.com>
Date:   Fri Oct 26 09:37:55 2018 -0300

    [PowerPC] Reject tdescs with VSX and no FPU or Altivec
    
    Currently rs6000_gdbarch_init will accept a tdesc with the
    "org.gnu.gdb.power.vsx" feature but without the
    "org.gnu.gdb.power.altivec" or "org.gnu.gdb.power.fpu".
    
    It isn't clear from the standard features documentation that these are
    requirements.  However, these tdescs would cause trouble in the VSX
    pseudo-register functions, so this patch will cause them to be
    rejected.
    
    gdb/ChangeLog:
    2018-10-26  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>
    
    	* rs6000-tdep.c (rs6000_gdbarch_init): Reject tdescs with vsx but
    	without altivec or fpu.

Diff:
---
 gdb/ChangeLog     | 5 +++++
 gdb/rs6000-tdep.c | 3 ++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e07af9d..74c7b39 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2018-10-26  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>
+
+	* rs6000-tdep.c (rs6000_gdbarch_init): Reject tdescs with vsx but
+	without altivec or fpu.
+
 2018-10-26  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
 	    Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>
 
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 54591db..7e41d8f 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -6042,7 +6042,8 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 	    valid_p &= tdesc_numbered_register (feature, tdesc_data,
 						PPC_VSR0_UPPER_REGNUM + i,
 						vsx_regs[i]);
-	  if (!valid_p)
+
+	  if (!valid_p || !have_fpu || !have_altivec)
 	    {
 	      tdesc_data_cleanup (tdesc_data);
 	      return NULL;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]