xref: /openbsd-src/gnu/llvm/clang/lib/Basic/Targets/XCore.cpp (revision 12c855180aad702bbcca06e0398d774beeafb155)
1e5dd7070Spatrick //===--- XCore.cpp - Implement XCore target feature support ---------------===//
2e5dd7070Spatrick //
3e5dd7070Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4e5dd7070Spatrick // See https://llvm.org/LICENSE.txt for license information.
5e5dd7070Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6e5dd7070Spatrick //
7e5dd7070Spatrick //===----------------------------------------------------------------------===//
8e5dd7070Spatrick //
9e5dd7070Spatrick // This file implements XCore TargetInfo objects.
10e5dd7070Spatrick //
11e5dd7070Spatrick //===----------------------------------------------------------------------===//
12e5dd7070Spatrick 
13e5dd7070Spatrick #include "XCore.h"
14e5dd7070Spatrick #include "clang/Basic/Builtins.h"
15e5dd7070Spatrick #include "clang/Basic/MacroBuilder.h"
16e5dd7070Spatrick #include "clang/Basic/TargetBuiltins.h"
17e5dd7070Spatrick 
18e5dd7070Spatrick using namespace clang;
19e5dd7070Spatrick using namespace clang::targets;
20e5dd7070Spatrick 
21*12c85518Srobert static constexpr Builtin::Info BuiltinInfo[] = {
22e5dd7070Spatrick #define BUILTIN(ID, TYPE, ATTRS)                                               \
23*12c85518Srobert   {#ID, TYPE, ATTRS, nullptr, HeaderDesc::NO_HEADER, ALL_LANGUAGES},
24e5dd7070Spatrick #define LIBBUILTIN(ID, TYPE, ATTRS, HEADER)                                    \
25*12c85518Srobert   {#ID, TYPE, ATTRS, nullptr, HeaderDesc::HEADER, ALL_LANGUAGES},
26e5dd7070Spatrick #include "clang/Basic/BuiltinsXCore.def"
27e5dd7070Spatrick };
28e5dd7070Spatrick 
getTargetDefines(const LangOptions & Opts,MacroBuilder & Builder) const29e5dd7070Spatrick void XCoreTargetInfo::getTargetDefines(const LangOptions &Opts,
30e5dd7070Spatrick                                        MacroBuilder &Builder) const {
31a9ac8606Spatrick   Builder.defineMacro("__xcore__");
32e5dd7070Spatrick   Builder.defineMacro("__XS1B__");
33e5dd7070Spatrick }
34e5dd7070Spatrick 
getTargetBuiltins() const35e5dd7070Spatrick ArrayRef<Builtin::Info> XCoreTargetInfo::getTargetBuiltins() const {
36*12c85518Srobert   return llvm::ArrayRef(BuiltinInfo,
37*12c85518Srobert                         clang::XCore::LastTSBuiltin - Builtin::FirstTSBuiltin);
38e5dd7070Spatrick }
39