Sparc.h revision 317019
1317019Sdim//===--- Sparc.h - Sparc-specific Tool Helpers ----------------------*- C++ -*-===//
2317019Sdim//
3317019Sdim//                     The LLVM Compiler Infrastructure
4317019Sdim//
5317019Sdim// This file is distributed under the University of Illinois Open Source
6317019Sdim// License. See LICENSE.TXT for details.
7317019Sdim//
8317019Sdim//===----------------------------------------------------------------------===//
9317019Sdim
10317019Sdim#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_SPARC_H
11317019Sdim#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_SPARC_H
12317019Sdim
13317019Sdim#include "clang/Driver/Driver.h"
14317019Sdim#include "llvm/ADT/StringRef.h"
15317019Sdim#include "llvm/Option/Option.h"
16317019Sdim#include <string>
17317019Sdim#include <vector>
18317019Sdim
19317019Sdimnamespace clang {
20317019Sdimnamespace driver {
21317019Sdimnamespace tools {
22317019Sdimnamespace sparc {
23317019Sdim
24317019Sdimenum class FloatABI {
25317019Sdim  Invalid,
26317019Sdim  Soft,
27317019Sdim  Hard,
28317019Sdim};
29317019Sdim
30317019SdimFloatABI getSparcFloatABI(const Driver &D, const llvm::opt::ArgList &Args);
31317019Sdim
32317019Sdimvoid getSparcTargetFeatures(const Driver &D, const llvm::opt::ArgList &Args,
33317019Sdim                            std::vector<llvm::StringRef> &Features);
34317019Sdimconst char *getSparcAsmModeForCPU(llvm::StringRef Name,
35317019Sdim                                  const llvm::Triple &Triple);
36317019Sdim
37317019Sdim} // end namespace sparc
38317019Sdim} // end namespace target
39317019Sdim} // end namespace driver
40317019Sdim} // end namespace clang
41317019Sdim
42317019Sdim#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_SPARC_H
43