mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-07 15:03:34 +00:00
Now that these functions are behind _COSMO_SOURCE there's no reason for having the ugly underscore anymore. To use these functions, you need to pass -mcosmo to cosmocc.
11 lines
455 B
C
11 lines
455 B
C
#ifndef COSMOPOLITAN_LIBC_STR_THOMPIKE_H_
|
|
#define COSMOPOLITAN_LIBC_STR_THOMPIKE_H_
|
|
#include "libc/intrin/bsr.h"
|
|
|
|
#define ThomPikeCont(x) (0200 == (0300 & (x)))
|
|
#define ThomPikeByte(x) ((x) & (((1 << ThomPikeMsb(x)) - 1) | 3))
|
|
#define ThomPikeLen(x) (7 - ThomPikeMsb(x))
|
|
#define ThomPikeMsb(x) ((255 & (x)) < 252 ? bsr(255 & ~(x)) : 1)
|
|
#define ThomPikeMerge(x, y) ((x) << 6 | (077 & (y)))
|
|
|
|
#endif /* COSMOPOLITAN_LIBC_STR_THOMPIKE_H_ */
|