This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [rfa/arm] Fix the types of ARM FPA registers


> 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.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]