This saves three cycles per character, and reduces the size of the
function by eight bytes (the loop is unrolled eight times).
Thanks to davidg for pointing this out.
Since ints and longs are both 32 bits on a i386, we could alias abs()
and labs() together as mycroft did with memmove()/memcpy(), but I'm
waiting on an interpretation ruling to see if it is legal.