aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Targets/Xtensa.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Basic/Targets/Xtensa.cpp')
-rw-r--r--clang/lib/Basic/Targets/Xtensa.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/Xtensa.cpp b/clang/lib/Basic/Targets/Xtensa.cpp
new file mode 100644
index 0000000..f3216f4
--- /dev/null
+++ b/clang/lib/Basic/Targets/Xtensa.cpp
@@ -0,0 +1,35 @@
+//===--- Xtensa.cpp - Implement Xtensa target feature support -------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements Xtensa TargetInfo objects.
+//
+//===----------------------------------------------------------------------===//
+
+#include "Xtensa.h"
+#include "clang/Basic/Builtins.h"
+#include "clang/Basic/MacroBuilder.h"
+#include "clang/Basic/TargetBuiltins.h"
+
+using namespace clang;
+using namespace clang::targets;
+
+void XtensaTargetInfo::getTargetDefines(const LangOptions &Opts,
+ MacroBuilder &Builder) const {
+ Builder.defineMacro("__xtensa__");
+ Builder.defineMacro("__XTENSA__");
+ if (BigEndian)
+ Builder.defineMacro("__XTENSA_EB__");
+ else
+ Builder.defineMacro("__XTENSA_EL__");
+ Builder.defineMacro("__XCHAL_HAVE_BE", BigEndian ? "1" : "0");
+ Builder.defineMacro("__XCHAL_HAVE_ABS"); // core arch
+ Builder.defineMacro("__XCHAL_HAVE_ADDX"); // core arch
+ Builder.defineMacro("__XCHAL_HAVE_L32R"); // core arch
+}