|
|
|
@ -32,26 +32,17 @@ static const unsigned char DIGITS[255] = {
|
|
|
|
|
['0' ... '9'] = 1,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
inline static void _fresolv(result_t f[restrict 3], off_t field, result_t v)
|
|
|
|
|
inline static void _fresolv(result_t f[restrict SUM_FIELDS], off_t field, result_t v)
|
|
|
|
|
{
|
|
|
|
|
f[field & 3] += v;
|
|
|
|
|
f[field & SUM_FIELDS] += v;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
inline static void fresolv(result_t f[restrict 3], const struct proc* restrict p, result_t v)
|
|
|
|
|
inline static void fresolv(result_t f[restrict SUM_FIELDS], const struct proc* restrict p, result_t v)
|
|
|
|
|
{
|
|
|
|
|
_fresolv(f, p->field, v);
|
|
|
|
|
//f[p->field] += v;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
inline static void mresolv(struct psum* restrict add, const struct proc* p, result_t v)
|
|
|
|
|
{
|
|
|
|
|
_fresolv((result_t* restrict)add, p->field, v);
|
|
|
|
|
//_fresolv((result_t(*)[3])add, p->field, v);
|
|
|
|
|
//*(((result_t*restrict)add)+p->field) += v;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline static __attribute__((const, always_inline, artificial, gnu_inline)) bool is_digit(char c)
|
|
|
|
|
{
|
|
|
|
|
return !!c[DIGITS];
|
|
|
|
|