[Predef-contribute] Adding MCST Elbrus architecture and MCST lcc compiler
Brought to you by:
breese,
tahonermann
|
From: Alibek O. <a1b...@gm...> - 2021-03-18 21:42:43
|
Hello! I suggest adding Elbrus architecture predefined macros and it's, unfortunately, proprietary compiler to the list. There is also a Clang port but it's in beta for now. As LCC and MCST lcc have the same name but are completely different compilers, I will refer to Elbrus compiler as MCST lcc. Elbrus can be detected by macros: * __e2k__ -- defined by MCST lcc and Clang. * __iset__ -- defined by MCST lcc, value equals version of the ISA. * __e2k64__, __elbrus64__, _ARCH_E2K64 -- defined by Clang with 64-bit mode. * __elbrus__, __ELBRUS__, _ARCH_E2K -- defined by Clang in both 32 and 64-bit mode. There are also model-specific macros(like __elbrus_8c2__ or __elbrus_1cplus__) but I haven't seen them used in the wild. MCST lcc can be detected by macros: * __LCC__ -- defined by every version of MCST lcc. Value equals to the major version of the compiler, e.g. for 1.25.14 it equals 125. * __LCC_MINOR__ -- defined by every version of MCST lcc. Value equals to the minor version of the compiler, e.g. for 1.25.14 it equals 14. * __MCST__ -- defined by MCST lcc since 1.25, as opposed to __LCC__, which has a conflict with Little C Compiler This compiler also sets EDG macros, as it uses it's frontend, and GCC macros, as it claims compatibility with GCC. Thanks, a1batross. |