2020-08-26 23:08:08 -07:00
|
|
|
#ifndef COSMOPOLITAN_LIBC_STR_THOMPIKE_H_
|
|
|
|
#define COSMOPOLITAN_LIBC_STR_THOMPIKE_H_
|
|
|
|
#include "libc/nexgen32e/bsr.h"
|
|
|
|
|
2020-10-27 03:39:46 -07:00
|
|
|
#define ThomPikeCont(x) (((x)&0300) == 0200)
|
2020-10-05 23:11:49 -07:00
|
|
|
#define ThomPikeByte(x) ((x) & (((1 << ThomPikeMsb(x)) - 1) | 3))
|
|
|
|
#define ThomPikeLen(x) (7 - ThomPikeMsb(x))
|
2020-10-10 21:18:53 -07:00
|
|
|
#define ThomPikeMsb(x) (((x)&0xff) < 252 ? bsr(~(x)&0xff) : 1)
|
2020-10-27 03:39:46 -07:00
|
|
|
#define ThomPikeMerge(x, y) ((x) << 6 | (y)&077)
|
2020-08-26 23:08:08 -07:00
|
|
|
|
|
|
|
#endif /* COSMOPOLITAN_LIBC_STR_THOMPIKE_H_ */
|