Peter Fuerst wrote:
>
>
> Hello !
>
>
> When building 2.6.10, the assembler (2.13.2.1) gets confused by a "b target2"
> (compiler generated) immediately following a "beqzl target1" (inline assembly
> macro), and reorders these instructions (with wrong address calculation too)
> to an infinite loop.
[snip]
> Was this behaviour already observed elsewhere ? Is it fixed in some newer
> assembler version ?
Fixed in current binutils CVS, IIRC both 2.15 branch and trunk. The
older binutils tarball at linux-mips.org was also fixed.
> Or should i just be content with it and work around
> with appropriate "nop"s in the concerned inline-assembly macros ? ... ?
You should upgrade to something newer than 2.13. :-)
> as -EB -G 0 -mips4 -O2 -g0 -64 -mcpu=r8000 -v -64 -non_shared -64
> -march=r8000 -mips4 --trap -o kernel/.tmp_fork.o
Note that those arguments are partially contradicting each other.
-mips4 -64 -mcpu=r8000 -64 -64 -march=r8000 -mips4
is (with 2.15 gas) better expressed as
-mabi=64 -march=mips4
or, more suitable for r10000, with
-mabi=64 -march=r10000
Thiemo
|