From 12aa4f0a57619d083429d94519af45656cd243aa Mon Sep 17 00:00:00 2001 From: naruse Date: Sat, 30 Apr 2016 22:32:05 +0000 Subject: * string.c (search_nonascii): use nlz on big endian environments. * internal.h (nlz_intpr): defined. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- string.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'string.c') diff --git a/string.c b/string.c index 04fc5d063d..3bcaa6cd64 100644 --- a/string.c +++ b/string.c @@ -449,7 +449,11 @@ search_nonascii(const char *p, const char *e) const uintptr_t *t = (const uintptr_t *)(e - (SIZEOF_VOIDP-1)); for (;s < t; s++) { if (*s & NONASCII_MASK) { +#if BYTE_ORDER == LITTLE_ENDIAN return (const char *)s + (ntz_intptr(*s&NONASCII_MASK)>>3); +#else + return (const char *)s + (nlz_intptr(*s&NONASCII_MASK)>>3); +#endif } } p = (const char *)s; -- cgit v1.2.3