From d2df34996b4755a55094ca2ead601e0345ab0ac5 Mon Sep 17 00:00:00 2001 From: Nguyen Quang Minh Date: Sun, 17 Feb 2019 15:53:58 +0700 Subject: [PATCH] Add support for Intel C Compiler --- cmake/flags.cmake | 8 ++++++++ src/crypto/CryptoNight.h | 2 +- src/crypto/CryptoNight_x86.h | 4 +++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/cmake/flags.cmake b/cmake/flags.cmake index 3989cb71..3aa94ff2 100644 --- a/cmake/flags.cmake +++ b/cmake/flags.cmake @@ -70,4 +70,12 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes") endif() +elseif (CMAKE_CXX_COMPILER_ID MATCHES Intel) + + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -funroll-loops") + + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fno-exceptions -fno-rtti") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -funroll-loops") + endif() diff --git a/src/crypto/CryptoNight.h b/src/crypto/CryptoNight.h index 8a48eafd..7a21b9b1 100644 --- a/src/crypto/CryptoNight.h +++ b/src/crypto/CryptoNight.h @@ -29,7 +29,7 @@ #include #include -#if defined _MSC_VER || defined XMRIG_ARM +#if defined _MSC_VER || defined XMRIG_ARM || defined __INTEL_COMPILER #define ABI_ATTRIBUTE #else #define ABI_ATTRIBUTE __attribute__((ms_abi)) diff --git a/src/crypto/CryptoNight_x86.h b/src/crypto/CryptoNight_x86.h index b6969571..1bcf0a84 100644 --- a/src/crypto/CryptoNight_x86.h +++ b/src/crypto/CryptoNight_x86.h @@ -446,8 +446,10 @@ static inline __m128i int_sqrt_v2(const uint64_t n0) r >>= 19; uint64_t x2 = (s - (1022ULL << 32)) * (r - s - (1022ULL << 32) + 1); -# if (defined(_MSC_VER) || __GNUC__ > 7 || (__GNUC__ == 7 && __GNUC_MINOR__ > 1)) && (defined(__x86_64__) || defined(_M_AMD64)) +# if (defined(_MSC_VER) || __GNUC__ > 7 || (__GNUC__ == 7 && __GNUC_MINOR__ > 1)) && (defined(__x86_64__) || defined(_M_AMD64)) && !defined(__INTEL_COMPILER) _addcarry_u64(_subborrow_u64(0, x2, n0, (unsigned long long int*)&x2), r, 0, (unsigned long long int*)&r); +# elif defined(__INTEL_COMPILER) + _addcarry_u64(_subborrow_u64(0, x2, n0, (unsigned long int*)&x2), r, 0, (unsigned long int*)&r); # else if (x2 < n0) ++r; # endif