[RFA/ARM]: Patch to workaround ARM1176 BLX (immediate) Thumb to ARM issue

Matthew Gretton-Dann matthew.gretton-dann@arm.com
Thu Jul 28 21:33:00 GMT 2011


On 28/07/11 15:03, Nick Clifton wrote:
> Hi Matthew,
>
>> * When the option is on the linker will only use BLX if the target
>> architecture (derived from the object files) is v6T2, v7, or
>> greater.
>
> This does not seem right to me.  The erratum only applies to the
> ARM1176JZ-S and ARM1176JZF-S processors and only to Thumb BLX
> instructions.  Disabling the use of BLX in ARM mode or for pre-ARM11
> cores will generate needlessly larger code.

The argument for doing it this way is that there are systems where code 
is built for architecture ARMv5TE (for example) yet the devices the code 
is run on is an ARM1176.

The aim of having the fix on by default for architectures before ARMv6T2 
is to catch these cases.

I was also looking for the least disruptive fix to the linker code paths 
so that the changes made would be easily tested.

> Also when you check the Tag_CPU_arch value, please use the enum names,
> not the integer values.

Noted - a patch will be forthcoming with updates following your comments 
and Joseph Myers'.

Thanks,

Matt

-- 
Matthew Gretton-Dann
Principal Engineer, PD Software - Tools, ARM Ltd



More information about the Binutils mailing list