This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug exp/21717] "print $fpscr" says "<unavailable>" until some VFP data register is printed
- From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: Tue, 25 Jul 2017 09:16:50 +0000
- Subject: [Bug exp/21717] "print $fpscr" says "<unavailable>" until some VFP data register is printed
- Auto-submitted: auto-generated
- References: <bug-21717-4717@http.sourceware.org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=21717
--- Comment #7 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The gdb-8.0-branch branch has been updated by Yao Qi <qiyao@sourceware.org>:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=50e64da58e648ff8708935add5b2a87b4e590edf
commit 50e64da58e648ff8708935add5b2a87b4e590edf
Author: Yao Qi <yao.qi@linaro.org>
Date: Tue Jul 25 10:15:25 2017 +0100
[ARM] Access FPSCR on vfpv2
GDB can fetch or store FPSCR on vfpv3, which has 32 VFP registers, but
fail to do so on vfpv2, which has 16 VFP registers. GDB code is incorrect
for vfpv2,
else if (tdep->vfp_register_count > 0
&& regno >= ARM_D0_REGNUM
&& regno <= ARM_D0_REGNUM + tdep->vfp_register_count)
while FPSCR register number is defined as ARM_D0_REGNUM + 32.
ARM_D0_REGNUM, /* VFP double-precision registers. */
ARM_D31_REGNUM = ARM_D0_REGNUM + 31,
ARM_FPSCR_REGNUM,
The code above uses "<=" rather than "<", in order to put FPSCR in the
range, but it is only correct when tdep->vfp_register_count is 32. On
vpfv2, it is 16, and FPSCR is out of the range, so fetch_vfp_regs or
store_vfp_regs are not called.
gdb:
2017-07-25 Yao Qi <yao.qi@linaro.org>
PR tdep/21717
* arm-linux-nat.c (arm_linux_fetch_inferior_registers): Update
condition for FPSCR.
(arm_linux_store_inferior_registers): Likewise.
--
You are receiving this mail because:
You are on the CC list for the bug.