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