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