diff options
author | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2020-07-23 18:21:17 +0300 |
---|---|---|
committer | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2020-07-23 22:49:26 +0300 |
commit | f1c3db3bf40e07cfd1a6a92209865ee7a98129ca (patch) | |
tree | 2c34f257c6165549a1fed3c53c2eb38106b04734 /configure.ac | |
parent | 886120f33bd3f10e6e6a09920eca1f9ed81044e7 (diff) | |
download | libgcrypt-f1c3db3bf40e07cfd1a6a92209865ee7a98129ca.tar.gz |
tests/bench-slope: improve CPU frequency auto-detection
* configure.ac (gcry_cv_have_asm_volatile_memory): Check also if
assembly memory barrier with input/output register is supported.
* tests/bench-slope.c (auto_ghz_bench): Change to use base operation
that takes two CPU cycles and unroll loop by 1024 operations.
--
CPU frequency is now correctly detected on AWS Graviton CPU (2.3Ghz).
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac index 9a5359c2..96a18d19 100644 --- a/configure.ac +++ b/configure.ac @@ -1117,7 +1117,11 @@ if test "$gcry_cv_have_asm" = "no" ; then [gcry_cv_have_asm_volatile_memory], [gcry_cv_have_asm_volatile_memory=no AC_COMPILE_IFELSE([AC_LANG_SOURCE( - [[void a(void) { __asm__ volatile("":::"memory"); }]])], + [[void a(int x) + { + __asm__ volatile("":::"memory"); + __asm__ volatile("":"+r"(x)::"memory"); + }]])], [gcry_cv_have_asm_volatile_memory=yes])]) fi else @@ -1125,7 +1129,10 @@ else [gcry_cv_have_asm_volatile_memory], [gcry_cv_have_asm_volatile_memory=no AC_COMPILE_IFELSE([AC_LANG_SOURCE( - [[void a(void) { asm volatile("":::"memory"); }]])], + [[void a(int x) + { + asm volatile("":::"memory"); + asm volatile("":"+r"(x)::"memory"); }]])], [gcry_cv_have_asm_volatile_memory=yes])]) fi if test "$gcry_cv_have_asm_volatile_memory" = "yes" ; then |