internal error reading f0-f7 registers in arm-elf targets.
Andrew Cagney
ac131313@redhat.com
Sun Jul 27 19:25:00 GMT 2003
> Secondly, just changing the number is hardly correct. Patches have to
> fix the problem, not just hide around it by making an incorrect change;
> and the comment is still accurate.
Well arm_register_virtual_size() and arm_register_virtual_type()
disagree, outch!
BTW, see also:
http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gdb&pr=1276
I get the feeling that FP_REGISTER_VIRTUAL_SIZE has nothing to do with
FP_REGISTER_RAW_SIZE and arm_register_virtual_size should return the raw
value. Well ok, technically, arm_register_virtual_size,
arm_register_raw_size and arm_register_virtual_type should all be folded
into arm_register_type.
Looking at FP_REGISTER_VIRTUAL_SIZE that really only comes into play
when the Arm doesn't even have H/W floating point registers. See
arm-linux-tdep.c where it pushes on a double fp value on the stack.
On the other hand, the Arm prologue analysis code, appears to assume
that those registers are always 12 bytes. Look for:
/* stfe f?, [sp, -#c]! */
store floating point extended (i.e. 12 bytes)
/* sfmfd f0, 4, [sp!] */
store 12 byte floating point registers
so it things 12 byte floats are stored.
Andrew
More information about the Gdb-patches
mailing list