diff options
author | Simon Atanasyan <simon@atanasyan.com> | 2013-04-21 13:30:10 +0000 |
---|---|---|
committer | Simon Atanasyan <simon@atanasyan.com> | 2013-04-21 13:30:10 +0000 |
commit | c7e2a4e08a14ff04de41146c418b71cd577c0a0d (patch) | |
tree | e981478a442863c9b4ff0a6806690bced2fb3271 | |
parent | 990b5e5be5e60e91cab2134d7f37a0ba70f727c2 (diff) |
[Mips] Convert a GNU style Mips ABI name to the name accepted by LLVM
Mips backend.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179981 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Driver/Tools.cpp | 9 | ||||
-rw-r--r-- | test/Driver/mips-abi.c | 36 |
2 files changed, 44 insertions, 1 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 1ea7c43efc..119b7c76a4 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -853,8 +853,15 @@ static void getMipsCPUAndABI(const ArgList &Args, CPUName = A->getValue(); } - if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) + if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) { ABIName = A->getValue(); + // Convert a GNU style Mips ABI name to the name + // accepted by LLVM Mips backend. + ABIName = llvm::StringSwitch<llvm::StringRef>(ABIName) + .Case("32", "o32") + .Case("64", "n64") + .Default(ABIName); + } // Setup default CPU and ABI names. if (CPUName.empty() && ABIName.empty()) { diff --git a/test/Driver/mips-abi.c b/test/Driver/mips-abi.c new file mode 100644 index 0000000000..fd2b46f41b --- /dev/null +++ b/test/Driver/mips-abi.c @@ -0,0 +1,36 @@ +// Check passing Mips ABI options to the backend. +// +// RUN: %clang -target mips-linux-gnu -### -c %s \ +// RUN: -mabi=32 2>&1 \ +// RUN: | FileCheck -check-prefix=MIPS-ABI-32 %s +// MIPS-ABI-32: "-target-abi" "o32" +// +// RUN: %clang -target mips-linux-gnu -### -c %s \ +// RUN: -mabi=o32 2>&1 \ +// RUN: | FileCheck -check-prefix=MIPS-ABI-O32 %s +// MIPS-ABI-O32: "-target-abi" "o32" +// +// RUN: %clang -target mips-linux-gnu -### -c %s \ +// RUN: -mabi=n32 2>&1 \ +// RUN: | FileCheck -check-prefix=MIPS-ABI-N32 %s +// MIPS-ABI-N32: "-target-abi" "n32" +// +// RUN: %clang -target mips64-linux-gnu -### -c %s \ +// RUN: -mabi=64 2>&1 \ +// RUN: | FileCheck -check-prefix=MIPS-ABI-64 %s +// MIPS-ABI-64: "-target-abi" "n64" +// +// RUN: %clang -target mips64-linux-gnu -### -c %s \ +// RUN: -mabi=n64 2>&1 \ +// RUN: | FileCheck -check-prefix=MIPS-ABI-N64 %s +// MIPS-ABI-N64: "-target-abi" "n64" +// +// RUN: %clang -target mips64-linux-gnu -### -c %s \ +// RUN: -mabi=o64 2>&1 \ +// RUN: | FileCheck -check-prefix=MIPS-ABI-O64 %s +// MIPS-ABI-O64: "-target-abi" "o64" +// +// RUN: %clang -target mips-linux-gnu -### -c %s \ +// RUN: -mabi=eabi 2>&1 \ +// RUN: | FileCheck -check-prefix=MIPS-ABI-EABI %s +// MIPS-ABI-EABI: "-target-abi" "eabi" |