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