More signed overflow fixes
[deliverable/binutils-gdb.git] / gdb / arch / ppc-linux-common.c
index 45da105de648acd9bb52be1cfdf38918171a0c3f..20b35807460ce5428e1ca6e2971026e7844a427b 100644 (file)
@@ -1,6 +1,6 @@
 /* Common target dependent code for GNU/Linux on PPC systems.
 
-   Copyright (C) 2018 Free Software Foundation, Inc.
+   Copyright (C) 2018-2019 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -17,7 +17,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include "common-defs.h"
+#include "gdbsupport/common-defs.h"
 #include "arch/ppc-linux-common.h"
 #include "arch/ppc-linux-tdesc.h"
 
@@ -50,33 +50,35 @@ ppc_linux_match_description (struct ppc_linux_features features)
 
   if (features.wordsize == 8)
     {
-      if (features.cell)
-       tdesc = tdesc_powerpc_cell64l;
-      else if (features.vsx)
-       tdesc = features.isa205
-         ? tdesc_powerpc_isa205_vsx64l : tdesc_powerpc_vsx64l;
+      if (features.vsx)
+       tdesc = (features.htm? tdesc_powerpc_isa207_htm_vsx64l
+                : features.isa207? tdesc_powerpc_isa207_vsx64l
+                : features.ppr_dscr? tdesc_powerpc_isa205_ppr_dscr_vsx64l
+                : features.isa205? tdesc_powerpc_isa205_vsx64l
+                : tdesc_powerpc_vsx64l);
       else if (features.altivec)
-       tdesc = features.isa205
-         ? tdesc_powerpc_isa205_altivec64l : tdesc_powerpc_altivec64l;
+       tdesc = (features.isa205? tdesc_powerpc_isa205_altivec64l
+                : tdesc_powerpc_altivec64l);
       else
-       tdesc = features.isa205?
-         tdesc_powerpc_isa205_64l : tdesc_powerpc_64l;
+       tdesc = (features.isa205? tdesc_powerpc_isa205_64l
+                : tdesc_powerpc_64l);
     }
   else
     {
       gdb_assert (features.wordsize == 4);
 
-      if (features.cell)
-       tdesc = tdesc_powerpc_cell32l;
-      else if (features.vsx)
-       tdesc = features.isa205
-         ? tdesc_powerpc_isa205_vsx32l : tdesc_powerpc_vsx32l;
+      if (features.vsx)
+       tdesc = (features.htm? tdesc_powerpc_isa207_htm_vsx32l
+                : features.isa207? tdesc_powerpc_isa207_vsx32l
+                : features.ppr_dscr? tdesc_powerpc_isa205_ppr_dscr_vsx32l
+                : features.isa205? tdesc_powerpc_isa205_vsx32l
+                : tdesc_powerpc_vsx32l);
       else if (features.altivec)
-       tdesc = features.isa205
-         ? tdesc_powerpc_isa205_altivec32l : tdesc_powerpc_altivec32l;
+       tdesc = (features.isa205? tdesc_powerpc_isa205_altivec32l
+                : tdesc_powerpc_altivec32l);
       else
-       tdesc = features.isa205
-         ? tdesc_powerpc_isa205_32l : tdesc_powerpc_32l;
+       tdesc = (features.isa205? tdesc_powerpc_isa205_32l
+                : tdesc_powerpc_32l);
     }
 
   gdb_assert (tdesc != NULL);
This page took 0.031691 seconds and 4 git commands to generate.