1 /*
2 Copyright Konstantin Ivlev 2021
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at
5 http://www.boost.org/LICENSE_1_0.txt)
6 */
7 
8 #ifndef BOOST_PREDEF_ARCHITECTURE_E2K_H
9 #define BOOST_PREDEF_ARCHITECTURE_E2K_H
10 
11 #include <boost/predef/version_number.h>
12 #include <boost/predef/make.h>
13 
14 /* tag::reference[]
15 = `BOOST_ARCH_E2K`
16 
17 https://en.wikipedia.org/wiki/Elbrus_2000[E2K] architecture.
18 
19 [options="header"]
20 |===
21 | {predef_symbol} | {predef_version}
22 
23 | `+__e2k__+` | {predef_detection}
24 
25 | `+__e2k__+` | V.0.0
26 |===
27 */ // end::reference[]
28 
29 #define BOOST_ARCH_E2K BOOST_VERSION_NUMBER_NOT_AVAILABLE
30 
31 #if defined(__e2k__)
32 #   undef BOOST_ARCH_E2K
33 #   if !defined(BOOST_ARCH_E2K) && defined(__iset__)
34 #       define BOOST_ARCH_E2K BOOST_VERSION_NUMBER(__iset__,0,0)
35 #   endif
36 #   if !defined(BOOST_ARCH_E2K)
37 #       define BOOST_ARCH_E2K BOOST_VERSION_NUMBER_AVAILABLE
38 #   endif
39 #endif
40 
41 #if BOOST_ARCH_E2K
42 #   define BOOST_ARCH_E2K_AVAILABLE
43 #endif
44 
45 #if BOOST_ARCH_E2K
46 #   define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
47 #endif
48 
49 #define BOOST_ARCH_E2K_NAME "E2K"
50 
51 #endif
52 
53 #include <boost/predef/detail/test.h>
54 BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_E2K,BOOST_ARCH_E2K_NAME)
55