1//===--- XCore.cpp - Implement XCore target feature support ---------------===//
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 implements XCore TargetInfo objects.
10//
11//===----------------------------------------------------------------------===//
12
13#include "XCore.h"
14#include "clang/Basic/Builtins.h"
15#include "clang/Basic/MacroBuilder.h"
16#include "clang/Basic/TargetBuiltins.h"
17
18using namespace clang;
19using namespace clang::targets;
20
21static constexpr int NumBuiltins =
22 XCore::LastTSBuiltin - Builtin::FirstTSBuiltin;
23
24static constexpr llvm::StringTable BuiltinStrings =
25 CLANG_BUILTIN_STR_TABLE_START
26#define BUILTIN CLANG_BUILTIN_STR_TABLE
27#include "clang/Basic/BuiltinsXCore.def"
28 ;
29
30static constexpr auto BuiltinInfos = Builtin::MakeInfos<NumBuiltins>(Infos: {
31#define BUILTIN CLANG_BUILTIN_ENTRY
32#define LIBBUILTIN CLANG_LIBBUILTIN_ENTRY
33#include "clang/Basic/BuiltinsXCore.def"
34});
35
36void XCoreTargetInfo::getTargetDefines(const LangOptions &Opts,
37 MacroBuilder &Builder) const {
38 Builder.defineMacro(Name: "__xcore__");
39 Builder.defineMacro(Name: "__XS1B__");
40}
41
42llvm::SmallVector<Builtin::InfosShard>
43XCoreTargetInfo::getTargetBuiltins() const {
44 return {{&BuiltinStrings, BuiltinInfos}};
45}
46

Provided by KDAB

Privacy Policy
Improve your Profiling and Debugging skills
Find out more

source code of clang/lib/Basic/Targets/XCore.cpp