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 19 using namespace clang; 20 using namespace clang::targets; 21 getTargetDefines(const LangOptions & Opts,MacroBuilder & Builder) const22void XtensaTargetInfo::getTargetDefines(const LangOptions &Opts, 23 MacroBuilder &Builder) const { 24 Builder.defineMacro("__xtensa__"); 25 Builder.defineMacro("__XTENSA__"); 26 if (BigEndian) 27 Builder.defineMacro("__XTENSA_EB__"); 28 else 29 Builder.defineMacro("__XTENSA_EL__"); 30 Builder.defineMacro("__XCHAL_HAVE_BE", BigEndian ? "1" : "0"); 31 Builder.defineMacro("__XCHAL_HAVE_ABS"); // core arch 32 Builder.defineMacro("__XCHAL_HAVE_ADDX"); // core arch 33 Builder.defineMacro("__XCHAL_HAVE_L32R"); // core arch 34 } 35