1317019Sdim//===--- Sparc.h - Sparc-specific Tool Helpers ----------------------*- C++ -*-===// 2317019Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6317019Sdim// 7317019Sdim//===----------------------------------------------------------------------===// 8317019Sdim 9317019Sdim#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_SPARC_H 10317019Sdim#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_SPARC_H 11317019Sdim 12317019Sdim#include "clang/Driver/Driver.h" 13317019Sdim#include "llvm/ADT/StringRef.h" 14317019Sdim#include "llvm/Option/Option.h" 15317019Sdim#include <string> 16317019Sdim#include <vector> 17317019Sdim 18317019Sdimnamespace clang { 19317019Sdimnamespace driver { 20317019Sdimnamespace tools { 21317019Sdimnamespace sparc { 22317019Sdim 23317019Sdimenum class FloatABI { 24317019Sdim Invalid, 25317019Sdim Soft, 26317019Sdim Hard, 27317019Sdim}; 28317019Sdim 29317019SdimFloatABI getSparcFloatABI(const Driver &D, const llvm::opt::ArgList &Args); 30317019Sdim 31317019Sdimvoid getSparcTargetFeatures(const Driver &D, const llvm::opt::ArgList &Args, 32317019Sdim std::vector<llvm::StringRef> &Features); 33317019Sdimconst char *getSparcAsmModeForCPU(llvm::StringRef Name, 34317019Sdim const llvm::Triple &Triple); 35317019Sdim 36317019Sdim} // end namespace sparc 37317019Sdim} // end namespace target 38317019Sdim} // end namespace driver 39317019Sdim} // end namespace clang 40317019Sdim 41317019Sdim#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_SPARC_H 42