[PowerPC] Recognize isa205 in linux core files
Currently the ppc linux core file target doesn't return target descriptions with the lager FPSCR introduced in isa205. This patch changes the core file target so that the auxv is read from the core file to determine the size of FPSCR, so that the appropriate target description is selected. gdb/ChangeLog: 2018-05-22 Pedro Franco de Carvalho <pedromfc@linux.vnet.ibm.com> * arch/ppc-linux-common.c (ppc_linux_has_isa205): Change the parameter type to CORE_ADDR. * arch/ppc-linux-common.h (ppc_linux_has_isa205): Change the parameter type in declaration to CORE_ADDR. * ppc-linux-tdep.c (ppc_linux_core_read_description): Call target_auxv_search to get AT_HWCAP and use the result to get the target description. * ppc-linux-nat.c (ppc_linux_get_hwcap): Change the return type to CORE_ADDR. Remove the cast of the return value to unsigned long. Fix error predicate of target_auxv_search. (ppc_linux_nat_target::read_description): Change the type of the hwcap variable to CORE_ADDR. gdb/testsuite/ChangeLog: 2018-05-22 Pedro Franco de Carvalho <pedromfc@linux.vnet.ibm.com> * gdb.arch/powerpc-fpscr-gcore.exp: New file.
This commit is contained in:
parent
0fb2aaa15e
commit
0ec848ad25
7 changed files with 126 additions and 7 deletions
|
@ -1165,15 +1165,15 @@ store_ppc_registers (const struct regcache *regcache, int tid)
|
|||
}
|
||||
|
||||
/* Fetch the AT_HWCAP entry from the aux vector. */
|
||||
static unsigned long
|
||||
static CORE_ADDR
|
||||
ppc_linux_get_hwcap (void)
|
||||
{
|
||||
CORE_ADDR field;
|
||||
|
||||
if (target_auxv_search (target_stack, AT_HWCAP, &field))
|
||||
return (unsigned long) field;
|
||||
if (target_auxv_search (target_stack, AT_HWCAP, &field) != 1)
|
||||
return 0;
|
||||
|
||||
return 0;
|
||||
return field;
|
||||
}
|
||||
|
||||
/* The cached DABR value, to install in new threads.
|
||||
|
@ -2236,7 +2236,7 @@ ppc_linux_nat_target::read_description ()
|
|||
|
||||
features.wordsize = ppc_linux_target_wordsize (tid);
|
||||
|
||||
unsigned long hwcap = ppc_linux_get_hwcap ();
|
||||
CORE_ADDR hwcap = ppc_linux_get_hwcap ();
|
||||
|
||||
if (have_ptrace_getsetvsxregs
|
||||
&& (hwcap & PPC_FEATURE_HAS_VSX))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue