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