aboutsummaryrefslogtreecommitdiff
path: root/src/crypto/slow-hash.c
diff options
context:
space:
mode:
authorredfish <redfish@galactica.pw>2016-09-04 04:27:51 +0000
committerredfish <redfish@galactica.pw>2016-09-04 06:46:35 +0000
commit24d93370adb14999841e330e5666749db6dd1f7f (patch)
treeb5604328ae6fdfea18a61127bcf92a390aed6730 /src/crypto/slow-hash.c
parentMerge pull request #1041 (diff)
downloadmonero-24d93370adb14999841e330e5666749db6dd1f7f.tar.xz
crypto,cmake: enable ASM mul impl on ARM; add cmake opt
This was disabled earlier as part of diagnosing failing tests on ARM, which turned out to be due to aliasing, fixed by adding -fno-strict-aliasing. So, re-enabling it back.
Diffstat (limited to 'src/crypto/slow-hash.c')
-rw-r--r--src/crypto/slow-hash.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/crypto/slow-hash.c b/src/crypto/slow-hash.c
index 8a1807657..a0d2d1302 100644
--- a/src/crypto/slow-hash.c
+++ b/src/crypto/slow-hash.c
@@ -679,7 +679,7 @@ void slow_hash_free_state(void)
#include "aesb.c"
-#ifndef ARM_MUL_IMPL_ASM
+#ifdef NO_OPTIMIZED_MULTIPLY_ON_ARM
/* The asm corresponds to this C code */
#define SHORT uint32_t
#define LONG uint64_t
@@ -712,7 +712,7 @@ void mul(const uint8_t *ca, const uint8_t *cb, uint8_t *cres) {
res[0] = t.tmp[6];
res[1] = t.tmp[7];
}
-#else // ARM_MUL_IMPL_ASM (TODO: this fails hash-slow test with GCC 6.1.1)
+#else // !NO_OPTIMIZED_MULTIPLY_ON_ARM
/* Can work as inline, but actually runs slower. Keep it separate */
#define mul(a, b, c) cn_mul128(a, b, c)
@@ -747,7 +747,7 @@ __asm__ __volatile__(
: [A]"r"(aa[1]), [a]"r"(aa[0]), [B]"r"(bb[1]), [b]"r"(bb[0]), [r]"r"(r)
: "cc", "memory");
}
-#endif // ARM_MUL_IMPL_ASM
+#endif // NO_OPTIMIZED_MULTIPLY_ON_ARM
STATIC INLINE void sum_half_blocks(uint8_t* a, const uint8_t* b)
{