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