Changeset 1841


Ignore:
Timestamp:
Oct 11, 2008, 10:04:46 PM (16 years ago)
Author:
bird
Message:

misc: some more unroll attemtps.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/src/kmk/misc.c

    r1840 r1841  
    496496end_of_token (const char *s)
    497497{
     498#ifdef KMK
     499    for (;;)
     500      {
     501        unsigned char ch0, ch1, ch2, ch3;
     502
     503        ch0 = *s;
     504        if (MY_PREDICT_FALSE(isblank(ch0) || ch0 == '\0'))
     505          return (char *)s;
     506        ch1 = s[1];
     507        if (MY_PREDICT_FALSE(isblank(ch1) || ch1 == '\0'))
     508          return (char *)s + 1;
     509        ch2 = s[2];
     510        if (MY_PREDICT_FALSE(isblank(ch2) || ch2 == '\0'))
     511          return (char *)s + 2;
     512        ch3 = s[3];
     513        if (MY_PREDICT_FALSE(isblank(ch3) || ch3 == '\0'))
     514          return (char *)s + 3;
     515
     516        s += 4;
     517      }
     518
     519#else
    498520  while (*s != '\0' && !isblank ((unsigned char)*s))
    499521    ++s;
    500522  return (char *)s;
     523#endif
    501524}
    502525
     
    536559next_token (const char *s)
    537560{
     561#ifdef KMK
     562  for (;;)
     563    {
     564      unsigned char ch0, ch1, ch2, ch3;
     565
     566      ch0 = *s;
     567      if (MY_PREDICT_FALSE(!isblank(ch0)))
     568          return (char *)s;
     569      ch1 = s[1];
     570      if (MY_PREDICT_FALSE(!isblank(ch1)))
     571        return (char *)s + 1;
     572      ch2 = s[2];
     573      if (MY_PREDICT_FALSE(!isblank(ch2)))
     574        return (char *)s + 2;
     575      ch3 = s[3];
     576      if (MY_PREDICT_TRUE(!isblank(ch3)))
     577        return (char *)s + 3;
     578
     579      s += 4;
     580    }
     581
     582#else  /* !KMK */
    538583  while (isblank ((unsigned char)*s))
    539584    ++s;
    540585  return (char *)s;
     586#endif /* !KMK */
    541587}
    542588
Note: See TracChangeset for help on using the changeset viewer.