teak-llvm/clang/test/Driver/mips-eleb.c
Daniel Sanders 379d44bfdf [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
2014-07-16 11:52:23 +00:00

34 lines
1.7 KiB
C

// Check that -EL/-EB options adjust the toolchain flags.
//
// RUN: %clang -no-canonical-prefixes -target mips-unknown-linux-gnu -### \
// RUN: -EL -no-integrated-as %s 2>&1 \
// RUN: | FileCheck -check-prefix=MIPS32-EL %s
// MIPS32-EL: "{{.*}}clang{{.*}}" "-cc1" "-triple" "mipsel-unknown-linux-gnu"
// MIPS32-EL: "{{.*}}as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32"
// MIPS32-EL: "-EL"
// MIPS32-EL: "{{.*}}ld{{(.exe)?}}" {{.*}} "-m" "elf32ltsmip"
//
// RUN: %clang -no-canonical-prefixes -target mips64-unknown-linux-gnu -### \
// RUN: -EL -no-integrated-as %s 2>&1 \
// RUN: | FileCheck -check-prefix=MIPS64-EL %s
// MIPS64-EL: "{{.*}}clang{{.*}}" "-cc1" "-triple" "mips64el-unknown-linux-gnu"
// MIPS64-EL: "{{.*}}as{{(.exe)?}}" "-march" "mips64r2" "-mabi" "64"
// MIPS64-EL: "-EL"
// MIPS64-EL: "{{.*}}ld{{(.exe)?}}" {{.*}} "-m" "elf64ltsmip"
//
// RUN: %clang -no-canonical-prefixes -target mipsel-unknown-linux-gnu -### \
// RUN: -EB -no-integrated-as %s 2>&1 \
// RUN: | FileCheck -check-prefix=MIPS32-EB %s
// MIPS32-EB: "{{.*}}clang{{.*}}" "-cc1" "-triple" "mips-unknown-linux-gnu"
// MIPS32-EB: "{{.*}}as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32"
// MIPS32-EB: "-EB"
// MIPS32-EB: "{{.*}}ld{{(.exe)?}}" {{.*}} "-m" "elf32btsmip"
//
// RUN: %clang -no-canonical-prefixes -target mips64el-unknown-linux-gnu -### \
// RUN: -EB -no-integrated-as %s 2>&1 \
// RUN: | FileCheck -check-prefix=MIPS64-EB %s
// MIPS64-EB: "{{.*}}clang{{.*}}" "-cc1" "-triple" "mips64-unknown-linux-gnu"
// MIPS64-EB: "{{.*}}as{{(.exe)?}}" "-march" "mips64r2" "-mabi" "64"
// MIPS64-EB: "-EB"
// MIPS64-EB: "{{.*}}ld{{(.exe)?}}" {{.*}} "-m" "elf64btsmip"