summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bitops.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/bitops.c b/src/bitops.c
index 46eee22c3..7ab72633c 100644
--- a/src/bitops.c
+++ b/src/bitops.c
@@ -654,8 +654,11 @@ void bitopCommand(client *c) {
/* Fast path: as far as we have data for all the input bitmaps we
* can take a fast path that performs much better than the
- * vanilla algorithm. */
+ * vanilla algorithm. On ARM we skip the fast path since it will
+ * result in GCC compiling the code using multiple-words load/store
+ * operations that are not supported even in ARM >= v6. */
j = 0;
+ #ifndef __arm__
if (minlen >= sizeof(unsigned long)*4 && numkeys <= 16) {
unsigned long *lp[16];
unsigned long *lres = (unsigned long*) res;
@@ -716,6 +719,7 @@ void bitopCommand(client *c) {
}
}
}
+ #endif
/* j is set to the next byte to process by the previous loop. */
for (; j < maxlen; j++) {