Messages in this thread | | | Date | Sat, 23 Feb 2002 02:30:07 +0000 | From | Ian Molton <> | Subject | Re: [PATCH] hex <-> int conversion routines. |
| |
On a sunny 19 Feb 2002 12:27:28 -0800 H. Peter Anvin gathered a sheaf of electrons and etched in their motions the following immortal words:
> extern const char inthex_digits[]; > static __inline__ char inthex_nybble(int x) > { > return inthex_digits[x & 15]; > }
What about the following? It maintains the exact behaviour of the original, but can be smaller if it doesnt have to deal with >15 in the input (then it wont need the x &= 0x0f).
It would be 3 cycles for <10 and 4 for >=10 on ARM. I'd imagine this would be a little quicker than a load from memory as in the above example.
plus it doesnt waste 16 bytes of RAM in a lookup table.
static inline char inthex_nybble(int x){ x &= 0x0f; return x<10?x^48:x+87; }
Just a thought... - 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/
| |