brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 729d79f Raw
69 lines · c
1//===--- M68k.h - Declare M68k 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-exception6//7//===----------------------------------------------------------------------===//8//9// This file declares M68k TargetInfo objects.10//11//===----------------------------------------------------------------------===//12 13#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_M68K_H14#define LLVM_CLANG_LIB_BASIC_TARGETS_M68K_H15 16#include "OSTargets.h"17#include "clang/Basic/TargetInfo.h"18#include "clang/Basic/TargetOptions.h"19#include "llvm/Support/Compiler.h"20#include "llvm/TargetParser/Triple.h"21#include <optional>22 23namespace clang {24namespace targets {25 26class LLVM_LIBRARY_VISIBILITY M68kTargetInfo : public TargetInfo {27  static const char *const GCCRegNames[];28  static const TargetInfo::GCCRegAlias GCCRegAliases[];29 30  enum CPUKind {31    CK_Unknown,32    CK_68000,33    CK_68010,34    CK_68020,35    CK_68030,36    CK_68040,37    CK_6806038  } CPU = CK_Unknown;39 40  const TargetOptions &TargetOpts;41 42public:43  M68kTargetInfo(const llvm::Triple &Triple, const TargetOptions &);44 45  void getTargetDefines(const LangOptions &Opts,46                        MacroBuilder &Builder) const override;47  llvm::SmallVector<Builtin::InfosShard> getTargetBuiltins() const override;48  bool hasFeature(StringRef Feature) const override;49  ArrayRef<const char *> getGCCRegNames() const override;50  ArrayRef<TargetInfo::GCCRegAlias> getGCCRegAliases() const override;51  std::string convertConstraint(const char *&Constraint) const override;52  bool validateAsmConstraint(const char *&Name,53                             TargetInfo::ConstraintInfo &info) const override;54  std::optional<std::string> handleAsmEscapedChar(char EscChar) const override;55  std::string_view getClobbers() const override;56  BuiltinVaListKind getBuiltinVaListKind() const override;57  bool setCPU(const std::string &Name) override;58  CallingConvCheckResult checkCallingConvention(CallingConv CC) const override;59 60  std::pair<unsigned, unsigned> hardwareInterferenceSizes() const override {61    return std::make_pair(32, 32);62  }63};64 65} // namespace targets66} // namespace clang67 68#endif69