Subject: Re: ARM ELF TODO list
To: None <thorpej@wasabisystems.com>
From: Richard Earnshaw <rearnsha@buzzard.freeserve.co.uk>
List: port-arm
Date: 12/20/2001 11:43:26
> On Thu, Dec 20, 2001 at 12:54:46AM +0000, Richard Earnshaw wrote:
> 
>  > I've just checked in code to enable this.  Please let me know (and file a 
>  > PR) if you find any problems with it.
> 
> Cool.  Is this stuff already in gcc-current, or are you going to commit
> it to gcc-current soon'ish?
> 

Not yet.  Because GCC 3.x have integrated ARM/Thumb code generation, it's 
going to be an almost total re-write for that port (plus I'm going to have 
to make it work with the VFP development I'm working on).

>  > I've set the compiler up to do this as well.  We need to write kernel code 
>  > to fault these sequences on chips that can do so.
> 
> I can take a look at this -- the question is:
> 
> 	* Do we want the kernel to optionally provide fixups for
> 	  unaligned loads on such systems?

I would suggest not for now.  At this time we want to find and fix 
programs that are emitting "broken" ldr instructions.

(Besides, the meaning of an unaligned load on an ARM is not the same as 
for most other architectures -- the load is performed from (addr & ~3) 
with a rotation of an appropriate amount.

> 
> 	* Do we want the kernel to be verbose about the unaligned
> 	  load?

I'd be inclined to bus-error any unaligned load and force the problem to 
be fixed.

However, when running legacy (COMPAT_AOUT or whatever) programs, the 
faulting needs to be disabled.  For the old ABI it was correct to use 
unaligned ldr instructions.

R.