Messages in this thread | | | Date | Fri, 24 Aug 2007 10:57:13 -0500 | From | Matt Mackall <> | Subject | Re: [PATCH] memchr (trivial) optimization |
| |
On Fri, Aug 24, 2007 at 02:54:48PM +0200, Jan Engelhardt wrote: > > On Aug 23 2007 19:13, Matt Mackall wrote: > > > >And you can do even better with this: > > > >void *memchr(const void *s, int c, size_t n) > >{ > > const unsigned char *p = s, *e = s + n; > > const unsigned char *e = p + n; > > Uhm, you have two "e"s in there.
Yep, that's what I get for editing in email.
> Or do it glibc-style > > void *memchr(const void *s, unsigned char c, size_t n) > { > ... > for (; p + 3 < e; p += 4) { > if (c == p[0]) > return (void *)&p[0]; > if (c == p[1]) > return (void *)&p[1]; > if (c == p[2]) > return (void *)&p[2]; > if (c == p[3]) > return (void *)&p[3]; > } > ... /* check the rest */ > }
Yes, very funny.
-- Mathematics is the supreme nostalgia of our time. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |