This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [rfa/arm] Fix the types of ARM FPA registers
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: Daniel Jacobowitz <drow at false dot org>
- Cc: gdb-patches at sources dot redhat dot com, rearnsha at arm dot com
- Date: Thu, 25 Mar 2004 14:53:13 +0000
- Subject: Re: [rfa/arm] Fix the types of ARM FPA registers
- Organization: ARM Ltd.
- Reply-to: Richard Earnshaw <rearnsha at arm dot com>
> This has apparently been broken for a while... build an arm-elf GDB, connect
> to the simulator, and say 'print $f0'. You get an internal error because
> the virtual size is 8 but the raw size is 12, and we don't define
> DEPRECATED_REGISTER_CONVERTIBLE.
>
> I don't think any of the baggage is necessary any more. We can simply
> expose the correct type. After this patch, we have:
>
> (gdb) ptype $f0
> type = builtin_type_arm_ext_littlebyte_bigword
> (gdb) p sizeof($f0)
> $1 = 12
> (gdb) p $f0
> $2 = 0
>
> I also got to whack five deprecated methods.
>
> No change in test results on arm-sim, and it fixes the internal error. I
> don't have any hard-FPA targets to try it on (all my Linux setups are
> soft-FPA or soft-VFP).
>
I get a few testsuite differences, but these appear to be race conditions
of some sort, and not related to floating point values in any way. No FP
tests change.
>
> 2004-03-24 Daniel Jacobowitz <drow@mvista.com>
>
> * arm-linux-tdep.c (ARM_LINUX_JB_ELEMENT_SIZE): Define to
> INT_REGISTER_SIZE.
> (arm_linux_push_arguments): Use TARGET_DOUBLE_BIT instead of
> FP_REGISTER_VIRTUAL_SIZE.
> * arm-tdep.c (arm_make_sigtramp_cache): Use register_size instead
> of DEPRECATED_REGISTER_RAW_SIZE.
> (arm_register_type): Add gdbarch argument.
> (arm_register_raw_size, arm_register_virtual_size): Delete.
> (arm_register_byte, arm_extract_return_value)
> (arm_store_return_value, arm_get_longjmp_target): Update references
> to INT_REGISTER_RAW_SIZE and FP_REGISTER_RAW_SIZE.
> (arm_gdbarch_init): Likewise. Don't set
> deprecated_register_raw_size, deprecated_register_virtual_size,
> deprecated_max_register_raw_size,
> deprecated_max_register_virtual_size, or
> deprecated_max_register_virtual_type. Do set register_type.
> * arm-tdep.h (ARM_MAX_REGISTER_RAW_SIZE)
> (ARM_MAX_REGISTER_VIRTUAL_SIZE, INT_REGISTER_VIRTUAL_SIZE)
> (FP_REGISTER_VIRTUAL_SIZE): Delete.
> (INT_REGISTER_RAW_SIZE): Rename to INT_REGISTER_SIZE.
> (FP_REGISTER_RAW_SIZE): Rename to FP_REGISTER_SIZE.
> * arm-linux-tdep.c (ARM_NBSD_JB_ELEMENT_SIZE): Define to
> INT_REGISTER_SIZE.
> * remote-rdp.c (remote_rdp_fetch_register): Use MAX_REGISTER_SIZE.
> (remote_rdp_store_register): Likewise.
>
OK.
R.