On Thu, 11 Mar 1999, Nicholas Clark wrote:
> In the last mail [EMAIL PROTECTED] said:
>
> > Agreed. I've now had confirmation from ARM Ltd that LDRT Rm, [Rm] results
> > in UNPREDICTABLE behaviour. So it appears that binutils is correct and we
> > should fix the kernel.
>
> Whoa - that's not actually the culprit, is it?
Yes. The LDRT is generated by an inline asm. Those asms need to be given
constraints to tell the compiler that the input and output regs mustn't
overlap. GCC itself never open codes an LDRT.
> code was generated with gcc -S and the same command line. I think I
> know why the problem may not have been noticed before - with gcc -O2
> -S I discover that all the LDRTs are optimised so that Rm never equals
> Rn. (One is usually ip or lr, but not quite always)
That may well be the case by chance at the moment but there's nothing to
guarantee it will always hold.
p.
unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]