[PowerPC] Fix inclusion of dfp pseudoregs in tdep

Previously, decimal floating point pseudoregisters were always included
in the target if it had a floating point unit.

This patch changes this to only include them if the target description
indicates that they are present, i.e. if the FPSCR register has more
than 32 bits.

gdb/ChangeLog:
2018-05-22  Pedro Franco de Carvalho  <pedromfc@linux.vnet.ibm.com>

	* rs6000-tdep.c (rs6000_gdbarch_init): Assign 1 to have_dfp only
	if the size of fpscr is larger than 32 bits.
This commit is contained in:
Pedro Franco de Carvalho 2018-05-22 11:09:05 -03:00
parent 2c3305f6b0
commit 0fb2aaa15e
2 changed files with 11 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2018-05-22 Pedro Franco de Carvalho <pedromfc@linux.vnet.ibm.com>
* rs6000-tdep.c (rs6000_gdbarch_init): Assign 1 to have_dfp only
if the size of fpscr is larger than 32 bits.
2018-05-22 Pedro Franco de Carvalho <pedromfc@linux.vnet.ibm.com>
* ppc-linux-tdep.c (ppc_linux_vsxregset): New function.

View File

@ -5981,14 +5981,16 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
return NULL;
}
have_fpu = 1;
/* The fpscr register was expanded in isa 2.05 to 64 bits
along with the addition of the decimal floating point
facility. */
if (tdesc_register_size (feature, "fpscr") > 32)
have_dfp = 1;
}
else
have_fpu = 0;
/* The DFP pseudo-registers will be available when there are floating
point registers. */
have_dfp = have_fpu;
feature = tdesc_find_feature (tdesc,
"org.gnu.gdb.power.altivec");
if (feature != NULL)