Another negative thing about the table driven C type functions is that in the PROTECTED build, there will need to be two ctyle look-up tables:  One in user space and one in kernel space.  So the overhead will 512, not 256, bytes in that configuration.

Also, a minor correction:

The table look-up version would be something like

    #  define isdigit(c)  ( (table(c) & __DIGIT_MASK) != 0)

Given c in a register that would boil down to something like:

  * get the address of the table
  * offset by (c)

 * Fetch table entry from FLASH (big performance hit)

  * AND with __DIGIT_MASK
  * compare with zero


Reply via email to