[mips] Correct the invocation of GAS in several cases.
authorDaniel Sanders <daniel.sanders@imgtec.com>
Wed, 16 Jul 2014 11:52:23 +0000 (11:52 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Wed, 16 Jul 2014 11:52:23 +0000 (11:52 +0000)
commit379d44bfdf84c116a5fba4c2fabfd2ead3b9f0a4
tree00d32dd5b9a7e0402d35eb9897c27c0e89d5e49e
parenta03624d8aba1f363f4920affca0d2d0769a99127
[mips] Correct the invocation of GAS in several cases.

Summary:
As a result of this patch, assembling an empty file with GCC and Clang (using
GAS as the assembler) now produces identical objects.

-mfp32/-mfpxx/-mfp64 now form a trinity of options. -mfpxx is the default
when the triple vendor is 'img' or 'mti', the ABI is O32, and the CPU is
between mips2 and mips32r2/mips64r2 (inclusive).

-mno-shared is always given to the assembler to match the effect of
-mabicalls (currently unimplemented but Clang acts as if it is given).
Similarly, -call_nonpic is always given to match the effect of -mplt (also
unimplemented and acts as if given) except when the ABI is 64 in which case
-mplt has no effect so -KPIC is given instead.

-mhard-float/-msoft-float are now passed on.

-modd-spreg/-mno-odd-spreg are now passed on.

-mno-mips16 is correctly passed on. The assembler option is -no-mips16 not
-mno-mips16

Differential Revision: http://reviews.llvm.org/D4515

llvm-svn: 213138
clang/lib/Driver/Tools.cpp
clang/lib/Driver/Tools.h
clang/test/Driver/mips-as.c
clang/test/Driver/mips-eleb.c