Fix some of the ARM GAS failures

Richard Earnshaw rearnsha@gcc.gnu.org
Wed May 25 13:42:00 GMT 2005


On Tue, 2005-05-24 at 21:17, Zack Weinberg wrote:
> This patch should improve the ARM-GAS situation somewhat.  md_apply_fix3
> needs to truncate the relocation to 32 signed bits manually; if the host
> is 64-bit, fx_addnumber and fx_offset are 64-bit, and may generate
> spurious overflows.  Also, we need a double cast on both sides of the
> hack to pass an integer around in tc_fix_data.
> 

AFAICT tc_fix_data is a private type to the ARM-specific parts of the
assembler.  Since storing the thumbness is the only use, and the type of
tc_fix_data is defined in tc-arm.h (TC_FIX_TYPE), it would make much
more sense to just change TC_FIX_TYPE to 'int' and get rid of all those
nasty casts.

Otherwise OK.

R.
> zw
> 	* config/tc-arm.c (fix_new_arm): Cast thumb_mode to size_t
> 	before casting it to PTR.
> 	(md_apply_fix3): Truncate value, *valP, fixP->fx_addnumber,
> 	and fixP->fx_offset to 32 signed bits.



More information about the Binutils mailing list