]> granicus.if.org Git - clang/commitdiff
[driver][mips] Pass long-calls feature flag to the MIPS backend
authorSimon Atanasyan <simon@atanasyan.com>
Fri, 7 Jul 2017 10:35:33 +0000 (10:35 +0000)
committerSimon Atanasyan <simon@atanasyan.com>
Fri, 7 Jul 2017 10:35:33 +0000 (10:35 +0000)
Check the `-mlong-calls` command line option and pass the `long-calls`
feature flag to the backend. Handling of this feature flag in the backend
needs to be implemented by a separate commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@307386 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains/Arch/Mips.cpp
test/Driver/mips-features.c

index 66fa05c595f4a438f59c08ee4b1abc68801eb607..c336bb17f02924a1158cd71335bdef564ccc49d8 100644 (file)
@@ -299,6 +299,8 @@ void mips::getMIPSTargetFeatures(const Driver &D, const llvm::Triple &Triple,
                    options::OPT_modd_spreg, "nooddspreg");
   AddTargetFeature(Args, Features, options::OPT_mno_madd4, options::OPT_mmadd4,
                    "nomadd4");
+  AddTargetFeature(Args, Features, options::OPT_mlong_calls,
+                   options::OPT_mno_long_calls, "long-calls");
 }
 
 mips::NanEncoding mips::getSupportedNanEncoding(StringRef &CPU) {
index 69fc20e1f245e449f354f2902618d3d58b2583b1..9305f99051d87ee1f7cb9401d166ca97d204c8b5 100644 (file)
 // RUN:   | FileCheck --check-prefix=CHECK-IMG-SINGLEFLOAT-FPXX %s
 // CHECK-IMG-SINGLEFLOAT-FPXX: "-target-feature" "+single-float"
 // CHECK-IMG-SINGLEFLOAT-FPXX: "-target-feature" "+fpxx"
+
+// -mlong-call
+// RUN: %clang -target mips-img-linux-gnu -### -c %s -mlong-calls 2>&1 \
+// RUN:   | FileCheck --check-prefix=LONG-CALLS-ON %s
+// RUN: %clang -target mips-img-linux-gnu -### -c %s -mno-long-calls 2>&1 \
+// RUN:   | FileCheck --check-prefix=LONG-CALLS-OFF %s
+// RUN: %clang -target mips-img-linux-gnu -### -c %s 2>&1 \
+// RUN:   | FileCheck --check-prefix=LONG-CALLS-DEF %s
+// LONG-CALLS-ON: "-target-feature" "+long-calls"
+// LONG-CALLS-OFF: "-target-feature" "-long-calls"
+// LONG-CALLS-DEF-NOT: "long-calls"