Le64.h revision 327024
1//===--- Le64.h - Declare Le64 target feature support -----------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file declares Le64 TargetInfo objects. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_LE64_H 15#define LLVM_CLANG_LIB_BASIC_TARGETS_LE64_H 16 17#include "clang/Basic/TargetInfo.h" 18#include "clang/Basic/TargetOptions.h" 19#include "llvm/ADT/Triple.h" 20#include "llvm/Support/Compiler.h" 21 22namespace clang { 23namespace targets { 24 25class LLVM_LIBRARY_VISIBILITY Le64TargetInfo : public TargetInfo { 26 static const Builtin::Info BuiltinInfo[]; 27 28public: 29 Le64TargetInfo(const llvm::Triple &Triple, const TargetOptions &) 30 : TargetInfo(Triple) { 31 NoAsmVariants = true; 32 LongWidth = LongAlign = PointerWidth = PointerAlign = 64; 33 MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64; 34 resetDataLayout("e-m:e-v128:32-v16:16-v32:32-v96:32-n8:16:32:64-S128"); 35 } 36 37 void getTargetDefines(const LangOptions &Opts, 38 MacroBuilder &Builder) const override; 39 40 ArrayRef<Builtin::Info> getTargetBuiltins() const override; 41 42 BuiltinVaListKind getBuiltinVaListKind() const override { 43 return TargetInfo::PNaClABIBuiltinVaList; 44 } 45 46 const char *getClobbers() const override { return ""; } 47 48 ArrayRef<const char *> getGCCRegNames() const override { return None; } 49 50 ArrayRef<TargetInfo::GCCRegAlias> getGCCRegAliases() const override { 51 return None; 52 } 53 54 bool validateAsmConstraint(const char *&Name, 55 TargetInfo::ConstraintInfo &Info) const override { 56 return false; 57 } 58 59 bool hasProtectedVisibility() const override { return false; } 60}; 61 62} // namespace targets 63} // namespace clang 64#endif // LLVM_CLANG_LIB_BASIC_TARGETS_LE64_H 65