提交 b3391fd8 编写于 作者: S Salvatore Sanfilippo

Use ARM unaligned accesses ifdefs for SPARC as well.

上级 d7826823
...@@ -665,7 +665,7 @@ void bitopCommand(client *c) { ...@@ -665,7 +665,7 @@ void bitopCommand(client *c) {
* result in GCC compiling the code using multiple-words load/store * result in GCC compiling the code using multiple-words load/store
* operations that are not supported even in ARM >= v6. */ * operations that are not supported even in ARM >= v6. */
j = 0; j = 0;
#ifndef __arm__ #ifndef USE_ALIGNED_ACCESS
if (minlen >= sizeof(unsigned long)*4 && numkeys <= 16) { if (minlen >= sizeof(unsigned long)*4 && numkeys <= 16) {
unsigned long *lp[16]; unsigned long *lp[16];
unsigned long *lres = (unsigned long*) res; unsigned long *lres = (unsigned long*) res;
......
...@@ -215,4 +215,13 @@ void setproctitle(const char *fmt, ...); ...@@ -215,4 +215,13 @@ void setproctitle(const char *fmt, ...);
#define __arm64__ #define __arm64__
#endif #endif
/* Make sure we can test for SPARC just checking for __sparc__. */
#if defined(__sparc) && !defined(__sparc__)
#define __sparc__
#endif
#if defined(__sparc__) || defined(__arm__)
#define USE_ALIGNED_ACCESS
#endif
#endif #endif
...@@ -401,7 +401,7 @@ uint64_t MurmurHash64A (const void * key, int len, unsigned int seed) { ...@@ -401,7 +401,7 @@ uint64_t MurmurHash64A (const void * key, int len, unsigned int seed) {
uint64_t k; uint64_t k;
#if (BYTE_ORDER == LITTLE_ENDIAN) #if (BYTE_ORDER == LITTLE_ENDIAN)
#if defined(__arm__) && !defined(__arm64__) #ifdef USE_ALIGNED_ACCESS
memcpy(&k,data,sizeof(uint64_t)); memcpy(&k,data,sizeof(uint64_t));
#else #else
k = *((uint64_t*)data); k = *((uint64_t*)data);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册