1*2d6e7c2bSAlexey Gerenkov //===--- Xtensa.cpp - Implement Xtensa target feature support -------------===// 2*2d6e7c2bSAlexey Gerenkov // 3*2d6e7c2bSAlexey Gerenkov // The LLVM Compiler Infrastructure 4*2d6e7c2bSAlexey Gerenkov // 5*2d6e7c2bSAlexey Gerenkov // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 6*2d6e7c2bSAlexey Gerenkov // See https://llvm.org/LICENSE.txt for license information. 7*2d6e7c2bSAlexey Gerenkov // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 8*2d6e7c2bSAlexey Gerenkov // 9*2d6e7c2bSAlexey Gerenkov //===----------------------------------------------------------------------===// 10*2d6e7c2bSAlexey Gerenkov // 11*2d6e7c2bSAlexey Gerenkov // This file implements Xtensa TargetInfo objects. 12*2d6e7c2bSAlexey Gerenkov // 13*2d6e7c2bSAlexey Gerenkov //===----------------------------------------------------------------------===// 14*2d6e7c2bSAlexey Gerenkov 15*2d6e7c2bSAlexey Gerenkov #include "Xtensa.h" 16*2d6e7c2bSAlexey Gerenkov #include "clang/Basic/Builtins.h" 17*2d6e7c2bSAlexey Gerenkov #include "clang/Basic/MacroBuilder.h" 18*2d6e7c2bSAlexey Gerenkov #include "clang/Basic/TargetBuiltins.h" 19*2d6e7c2bSAlexey Gerenkov 20*2d6e7c2bSAlexey Gerenkov using namespace clang; 21*2d6e7c2bSAlexey Gerenkov using namespace clang::targets; 22*2d6e7c2bSAlexey Gerenkov 23*2d6e7c2bSAlexey Gerenkov void XtensaTargetInfo::getTargetDefines(const LangOptions &Opts, 24*2d6e7c2bSAlexey Gerenkov MacroBuilder &Builder) const { 25*2d6e7c2bSAlexey Gerenkov Builder.defineMacro("__xtensa__"); 26*2d6e7c2bSAlexey Gerenkov Builder.defineMacro("__XTENSA__"); 27*2d6e7c2bSAlexey Gerenkov if (BigEndian) 28*2d6e7c2bSAlexey Gerenkov Builder.defineMacro("__XTENSA_EB__"); 29*2d6e7c2bSAlexey Gerenkov else 30*2d6e7c2bSAlexey Gerenkov Builder.defineMacro("__XTENSA_EL__"); 31*2d6e7c2bSAlexey Gerenkov Builder.defineMacro("__XCHAL_HAVE_BE", BigEndian ? "1" : "0"); 32*2d6e7c2bSAlexey Gerenkov Builder.defineMacro("__XCHAL_HAVE_ABS"); // core arch 33*2d6e7c2bSAlexey Gerenkov Builder.defineMacro("__XCHAL_HAVE_ADDX"); // core arch 34*2d6e7c2bSAlexey Gerenkov Builder.defineMacro("__XCHAL_HAVE_L32R"); // core arch 35*2d6e7c2bSAlexey Gerenkov } 36