diff options
Diffstat (limited to 'clang/lib/Driver')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index da578ddfddf..0d04e45f36b 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -2484,7 +2484,7 @@ static void getAArch64TargetFeatures(const Driver &D, const ArgList &Args, static void getHexagonTargetFeatures(const ArgList &Args, std::vector<const char *> &Features) { - bool HasHVX = false, HasHVXD = false; + bool HasHVX = false, HasHVXD = false, UseLongCalls = false; // FIXME: This should be able to use handleTargetFeaturesGroup except it is // doing dependent option handling here rather than in initFeatureMap or a @@ -2499,6 +2499,10 @@ static void getHexagonTargetFeatures(const ArgList &Args, HasHVXD = HasHVX = true; else if (Opt.matches(options::OPT_mno_hexagon_hvx_double)) HasHVXD = false; + else if (Opt.matches(options::OPT_mlong_calls)) + UseLongCalls = true; + else if (Opt.matches(options::OPT_mno_long_calls)) + UseLongCalls = false; else continue; A->claim(); @@ -2506,6 +2510,7 @@ static void getHexagonTargetFeatures(const ArgList &Args, Features.push_back(HasHVX ? "+hvx" : "-hvx"); Features.push_back(HasHVXD ? "+hvx-double" : "-hvx-double"); + Features.push_back(UseLongCalls ? "+long-calls" : "-long-calls"); } static void getWebAssemblyTargetFeatures(const ArgList &Args, |