Le64.h revision 327952
1274075Sngie//===--- Le64.h - Declare Le64 target feature support -----------*- C++ -*-===// 2274075Sngie// 3307720Sngie// The LLVM Compiler Infrastructure 4307720Sngie// 5274075Sngie// This file is distributed under the University of Illinois Open Source 6274075Sngie// License. See LICENSE.TXT for details. 7290909Sngie// 8344977Sngie//===----------------------------------------------------------------------===// 9290909Sngie// 10274075Sngie// This file declares Le64 TargetInfo objects. 11274075Sngie// 12274075Sngie//===----------------------------------------------------------------------===// 13309466Sngie 14274075Sngie#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_LE64_H 15274075Sngie#define LLVM_CLANG_LIB_BASIC_TARGETS_LE64_H 16317618Svangyzen 17274075Sngie#include "clang/Basic/TargetInfo.h" 18274075Sngie#include "clang/Basic/TargetOptions.h" 19274075Sngie#include "llvm/ADT/Triple.h" 20274075Sngie#include "llvm/Support/Compiler.h" 21274075Sngie 22274075Sngienamespace clang { 23274075Sngienamespace targets { 24274075Sngie 25274075Sngieclass LLVM_LIBRARY_VISIBILITY Le64TargetInfo : public TargetInfo { 26274075Sngie static const Builtin::Info BuiltinInfo[]; 27309466Sngie 28274075Sngiepublic: 29274075Sngie Le64TargetInfo(const llvm::Triple &Triple, const TargetOptions &) 30274075Sngie : TargetInfo(Triple) { 31274075Sngie NoAsmVariants = true; 32274075Sngie LongWidth = LongAlign = PointerWidth = PointerAlign = 64; 33274075Sngie MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64; 34274075Sngie resetDataLayout("e-m:e-v128:32-v16:16-v32:32-v96:32-n8:16:32:64-S128"); 35274075Sngie } 36274075Sngie 37274075Sngie void getTargetDefines(const LangOptions &Opts, 38274075Sngie MacroBuilder &Builder) const override; 39274075Sngie 40274075Sngie ArrayRef<Builtin::Info> getTargetBuiltins() const override; 41274075Sngie 42274075Sngie BuiltinVaListKind getBuiltinVaListKind() const override { 43274075Sngie return TargetInfo::PNaClABIBuiltinVaList; 44274075Sngie } 45274075Sngie 46274075Sngie const char *getClobbers() const override { return ""; } 47274075Sngie 48274075Sngie ArrayRef<const char *> getGCCRegNames() const override { return None; } 49274075Sngie 50309466Sngie ArrayRef<TargetInfo::GCCRegAlias> getGCCRegAliases() const override { 51274075Sngie return None; 52274075Sngie } 53274075Sngie 54274075Sngie bool validateAsmConstraint(const char *&Name, 55274075Sngie TargetInfo::ConstraintInfo &Info) const override { 56274075Sngie return false; 57274075Sngie } 58274075Sngie 59274075Sngie bool hasProtectedVisibility() const override { return false; } 60274075Sngie}; 61274075Sngie 62274075Sngie} // namespace targets 63274075Sngie} // namespace clang 64274075Sngie#endif // LLVM_CLANG_LIB_BASIC_TARGETS_LE64_H 65309466Sngie