brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · c725703 Raw
46 lines · cpp
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-exception6//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_START26#define BUILTIN CLANG_BUILTIN_STR_TABLE27#include "clang/Basic/BuiltinsXCore.def"28    ;29 30static constexpr auto BuiltinInfos = Builtin::MakeInfos<NumBuiltins>({31#define BUILTIN CLANG_BUILTIN_ENTRY32#define LIBBUILTIN CLANG_LIBBUILTIN_ENTRY33#include "clang/Basic/BuiltinsXCore.def"34});35 36void XCoreTargetInfo::getTargetDefines(const LangOptions &Opts,37                                       MacroBuilder &Builder) const {38  Builder.defineMacro("__xcore__");39  Builder.defineMacro("__XS1B__");40}41 42llvm::SmallVector<Builtin::InfosShard>43XCoreTargetInfo::getTargetBuiltins() const {44  return {{&BuiltinStrings, BuiltinInfos}};45}46