diff --git a/src/optick.h b/src/optick.h index 96b28b99..a96b8920 100644 --- a/src/optick.h +++ b/src/optick.h @@ -56,6 +56,9 @@ # elif defined(__arm__) || defined(_M_ARM) # define OPTICK_ARM (1) # define OPTICK_32BIT (1) +# elif defined(__e2k__) +# define OPTICK_E2K (1) +# define OPTICK_64BIT (1) # endif #else #error Compiler not supported diff --git a/src/optick_core.cpp b/src/optick_core.cpp index a992c4f0..b315e53d 100644 --- a/src/optick_core.cpp +++ b/src/optick_core.cpp @@ -745,6 +745,8 @@ bool SwitchContextCollector::Serialize(OutputDataStream& stream) #define CPUID(INFO, ID) __cpuid(INFO, ID) #elif (defined(__ANDROID__) || defined(OPTICK_ARM)) // Nothing +#elif defined(OPTICK_E2K) +// Nothing #elif defined(OPTICK_GCC) #include #define CPUID(INFO, ID) __cpuid(ID, INFO[0], INFO[1], INFO[2], INFO[3]) @@ -773,6 +775,12 @@ string GetCPUName() #else return "ARM 64-bit"; #endif +#elif defined(OPTICK_E2K) + #if (defined(__LCC__) && defined(__MCST__)) // MCST LCC (eLbrus Compiler Collection) + return __builtin_cpu_name(); // e.g. elbrus-8c + #else + return "MCST Elbrus CPU"; + #endif #else int cpuInfo[4] = { -1 }; char cpuBrandString[0x40] = { 0 };