X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Fcpu.h;h=48c68a1169936641f779b10c59f77f68cd0c3923;hb=0eae2bb1f1199f7dcb6a8c62b1ea612ed9ee4ae1;hp=ee199e2cf325ad9704fa74fa878b5aca5548ec9d;hpb=652d2e139443cea073da9b7bef8ee21e41a14111;p=vpp.git diff --git a/src/vppinfra/cpu.h b/src/vppinfra/cpu.h index ee199e2cf32..48c68a11699 100644 --- a/src/vppinfra/cpu.h +++ b/src/vppinfra/cpu.h @@ -116,14 +116,22 @@ _CLIB_MARCH_FN_REGISTRATION(fn) #endif #define foreach_x86_64_flags \ _ (sse3, 1, ecx, 0) \ +_ (pclmulqdq, 1, ecx, 1) \ _ (ssse3, 1, ecx, 9) \ _ (sse41, 1, ecx, 19) \ _ (sse42, 1, ecx, 20) \ _ (avx, 1, ecx, 28) \ +_ (rdrand, 1, ecx, 30) \ _ (avx2, 7, ebx, 5) \ +_ (rtm, 7, ebx, 11) \ +_ (pqm, 7, ebx, 12) \ +_ (pqe, 7, ebx, 15) \ _ (avx512f, 7, ebx, 16) \ +_ (rdseed, 7, ebx, 18) \ _ (x86_aes, 1, ecx, 25) \ _ (sha, 7, ebx, 29) \ +_ (vaes, 7, ecx, 9) \ +_ (vpclmulqdq, 7, ecx, 10) \ _ (invariant_tsc, 0x80000007, edx, 8) @@ -227,7 +235,7 @@ static inline int clib_cpu_supports_ ## flag() { return 0; } static inline int clib_cpu_supports_aes () { -#if defined (__aarch64__) +#if defined(__x86_64__) return clib_cpu_supports_x86_aes (); #elif defined (__aarch64__) return clib_cpu_supports_aarch64_aes (); @@ -248,7 +256,7 @@ static inline int clib_cpu_march_priority_avx2 () { if (clib_cpu_supports_avx2 ()) - return 10; + return 50; return -1; } @@ -370,7 +378,7 @@ CLIB_MARCH_SFX(fn ## _march_constructor) (void) \ #else #define CLIB_MARCH_FN(fn, rtype, _args...) \ static rtype CLIB_CPU_OPTIMIZED CLIB_MARCH_SFX (fn ## _ma)(_args); \ - extern int (*fn ## _selected) (_args); \ + extern rtype (*fn ## _selected) (_args); \ extern int fn ## _selected_priority; \ CLIB_MARCH_FN_CONSTRUCTOR (fn) \ static rtype CLIB_CPU_OPTIMIZED CLIB_MARCH_SFX (fn ## _ma)(_args)