Integrated Assembler is now the default for mips-* and mipsel-* triples.

Hi,

I'm pleased to announce that the MIPS integrated assembler is now good enough
to recurse the compiler for MIPS32R2, build a bootable Linux kernel for
MIPS32R2, and pass LNT testing for a variety of 32-bit MIPS targets. I've
therefore enabled it by default for all 32-bit MIPS targets in both LLVM and
Clang.

We're not aiming for perfect GAS compatibility but you should find that the
commonly used functionality works as expected.

If you run into problems with it then please file a bug report and use
-fno-integrated-as while it's being fixed. The plan is to fix any remaining
issues as we discover them but we may fall back on reverting temporarily if too
much breaks.

We had to leave 64-bit MIPS targets using an external assembler for the moment
since the integrated assembler has a number of issues with the N32 ABI which
also prevents us making the switch for the N64 ABI because the relevant code
cannot distinguish N32 from N64. Hopefully we'll be able to make the switch for
those targets in the near future.

Thanks to everyone who made this possible.

Daniel Sanders
Leading Software Design Engineer, MIPS Processor IP
Imagination Technologies Limited

Congratulations and thanks!

Cheers,
Rafael

Success!!! :smiley:

Congratulations to every one, this is a major step forward!

cheers,
--renato

Indeed. We still have a few patches needed to be able to handle the n64 assembly in the FreeBSD kernel and to fix the position-dependent relocations, but with those applied we can compile FreeBSD/MIPS64 (MIPS III) with LLVM / Clang.

David