From 8dcf670f720ed2bf5f311f799d0891b0f24e0d0f Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Tue, 12 May 2020 01:17:38 +0200 Subject: [PATCH] ore hardnested switch to handle --- client/src/cmdhfmf.c | 12 ++++++++++++ client/src/cmdhfmfhard.c | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/client/src/cmdhfmf.c b/client/src/cmdhfmf.c index 8f54b1db8..50f3d9de1 100644 --- a/client/src/cmdhfmf.c +++ b/client/src/cmdhfmf.c @@ -228,10 +228,16 @@ static int usage_hf14_autopwn(void) { PrintAndLogEx(NORMAL, " * 2 = 2k"); PrintAndLogEx(NORMAL, " * 4 = 4k"); PrintAndLogEx(NORMAL, " i set type of SIMD instructions for hardnested. Default: autodetection."); +#if defined (__i386__) || defined (__x86_64__) +#if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8 || __clang_major__ == 8 && __clang_minor__ >= 1)) +#if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) PrintAndLogEx(NORMAL, " i 5 = AVX512"); +#endif PrintAndLogEx(NORMAL, " i 2 = AVX2"); PrintAndLogEx(NORMAL, " i a = AVX"); PrintAndLogEx(NORMAL, " i s = SSE2"); +#endif +#endif PrintAndLogEx(NORMAL, " i m = MMX"); PrintAndLogEx(NORMAL, " i n = none (use CPU regular instruction set)"); PrintAndLogEx(NORMAL, ""); @@ -1998,9 +2004,13 @@ static int CmdHF14AMfAutoPWN(const char *Cmd) { SetSIMDInstr(SIMD_AUTO); ctmp = tolower(param_getchar(Cmd, cmdp + 1)); switch (ctmp) { +#if defined (__i386__) || defined (__x86_64__) +#if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8 || __clang_major__ == 8 && __clang_minor__ >= 1)) +#if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) case '5': SetSIMDInstr(SIMD_AVX512); break; +#endif case '2': SetSIMDInstr(SIMD_AVX2); break; @@ -2013,6 +2023,8 @@ static int CmdHF14AMfAutoPWN(const char *Cmd) { case 'm': SetSIMDInstr(SIMD_MMX); break; +#endif +#endif case 'n': SetSIMDInstr(SIMD_NONE); break; diff --git a/client/src/cmdhfmfhard.c b/client/src/cmdhfmfhard.c index f01f43fae..6599a667e 100644 --- a/client/src/cmdhfmfhard.c +++ b/client/src/cmdhfmfhard.c @@ -75,9 +75,13 @@ static float brute_force_per_second; static void get_SIMD_instruction_set(char *instruction_set) { switch (GetSIMDInstrAuto()) { +#if defined (__i386__) || defined (__x86_64__) +#if !defined(__APPLE__) || (defined(__APPLE__) && (__clang_major__ > 8 || __clang_major__ == 8 && __clang_minor__ >= 1)) +#if (__GNUC__ >= 5) && (__GNUC__ > 5 || __GNUC_MINOR__ > 2) case SIMD_AVX512: strcpy(instruction_set, "AVX512F"); break; +#endif case SIMD_AVX2: strcpy(instruction_set, "AVX2"); break; @@ -90,6 +94,8 @@ static void get_SIMD_instruction_set(char *instruction_set) { case SIMD_MMX: strcpy(instruction_set, "MMX"); break; +#endif +#endif case SIMD_AUTO: case SIMD_NONE: strcpy(instruction_set, "no");