1*12c85518Srobert //===--- CSKY.h - CSKY-specific Tool Helpers ------------------*- C++ -*-===// 2*12c85518Srobert // 3*12c85518Srobert // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*12c85518Srobert // See https://llvm.org/LICENSE.txt for license information. 5*12c85518Srobert // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*12c85518Srobert // 7*12c85518Srobert //===----------------------------------------------------------------------===// 8*12c85518Srobert 9*12c85518Srobert #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_CSKY_H 10*12c85518Srobert #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_CSKY_H 11*12c85518Srobert 12*12c85518Srobert #include "clang/Driver/Driver.h" 13*12c85518Srobert #include "llvm/ADT/StringRef.h" 14*12c85518Srobert #include "llvm/Option/ArgList.h" 15*12c85518Srobert #include "llvm/Option/Option.h" 16*12c85518Srobert #include <string> 17*12c85518Srobert #include <vector> 18*12c85518Srobert 19*12c85518Srobert namespace clang { 20*12c85518Srobert namespace driver { 21*12c85518Srobert namespace tools { 22*12c85518Srobert namespace csky { 23*12c85518Srobert 24*12c85518Srobert enum class FloatABI { 25*12c85518Srobert Invalid, 26*12c85518Srobert Soft, 27*12c85518Srobert SoftFP, 28*12c85518Srobert Hard, 29*12c85518Srobert }; 30*12c85518Srobert 31*12c85518Srobert FloatABI getCSKYFloatABI(const Driver &D, const llvm::opt::ArgList &Args); 32*12c85518Srobert 33*12c85518Srobert void getCSKYTargetFeatures(const Driver &D, const llvm::Triple &Triple, 34*12c85518Srobert const llvm::opt::ArgList &Args, 35*12c85518Srobert llvm::opt::ArgStringList &CmdArgs, 36*12c85518Srobert std::vector<llvm::StringRef> &Features); 37*12c85518Srobert 38*12c85518Srobert std::optional<llvm::StringRef> getCSKYArchName(const Driver &D, 39*12c85518Srobert const llvm::opt::ArgList &Args, 40*12c85518Srobert const llvm::Triple &Triple); 41*12c85518Srobert 42*12c85518Srobert } // end namespace csky 43*12c85518Srobert } // namespace tools 44*12c85518Srobert } // end namespace driver 45*12c85518Srobert } // end namespace clang 46*12c85518Srobert 47*12c85518Srobert #endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_CSKY_H 48