This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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: Problems with branch-to-arm-from-thumb for typeless symbol


> From: Hans-Peter Nilsson <hp@axis.com>
> Date: Mon, 8 Apr 2013 13:14:05 +0200

Ping.

> > From: Richard Earnshaw <rearnsha@arm.com>
> > Date: Mon, 8 Apr 2013 12:46:00 +0200
> 
> > [sorry for the delayed reply, I've been OoO quite a bit recently]
> > 
> > No.
> > 
> > The linker should not be inserting code sequences that clobber register 
> > values when the ABI has not given it explicit permission to do
> > so.
> 
> Wrong, this does not happen.  I can't help but thinking you have
> misunderstood: no registers are clobbered for veneers from thumb
> to arm, which is the issue at hand and what I'm fixing.  Oh, I
> think I see: the test-case can be confusing but it's the
> *from-thumb* veneer in the test-cases that is generated with the
> patch!  (The from-arm veneers are generated anyway even without,
> due to .thumb_func.)
> 
> Nick gave his ok, but I'll not act on that until we have
> consensus.
> 
> >  An 
> > interworking veneer can need that and as such it is incorrect to make 
> > this change.
> > 
> > It might in theory be possible to do this safely when you have the BLX 
> > <sym> instruction (ARMv5),
> 
> There was no BLX in the stubs I observed (because they're
> default off due to an errata fix and have to be explicitly
> enabled for v6).
> 
> > but that then leads to inconsistency across 
> > architecture versions and that's equally undesirable.
> 
> Again, those mode-switching veneers from thumb to arm (to
> typeless symbols) already happen when the branch is out of
> range, so what we have now is inconsistent: the patch *restores*
> consistency.
> 
> Does any of this change your decision?
> 
> brgds, H-P
> 


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