X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Farch%2Fppc-linux-common.c;h=183fc03395b693127d65a825de4c52e504be33a4;hb=1ee1a363454d88a87ad2ade7530b2a7fb670021e;hp=45da105de648acd9bb52be1cfdf38918171a0c3f;hpb=0ec848ad25bb77edd9c9c3c097c3dd5b8874a6c0;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/arch/ppc-linux-common.c b/gdb/arch/ppc-linux-common.c index 45da105de6..183fc03395 100644 --- a/gdb/arch/ppc-linux-common.c +++ b/gdb/arch/ppc-linux-common.c @@ -1,6 +1,6 @@ /* Common target dependent code for GNU/Linux on PPC systems. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2020 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 . */ -#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);