SM_SHIFT
#define SM_MASK ((1ULL << SM_SHIFT) - 1)
y = (x >> SM_SHIFT) * sm + (((x & SM_MASK) * sm) >> SM_SHIFT);
sm = ((u64)m << SM_SHIFT);
m = (sm * PSCHED_TICKS_PER_SEC) >> SM_SHIFT;
dx = (y1 - y) << SM_SHIFT;