predictor = c->predictor;
step = step_table[c->step_index];
static inline short adpcm_ima_expand_nibble(ADPCMChannelStatus *c, char nibble){    int step_index;    int predictor;    int sign, delta, diff, step;    predictor = c->predictor;    step_index = c->step_index + index_table[(unsigned)nibble];    if (step_index < 0) step_index = 0;    if (step_index > 88) step_index = 88;    step = c->step;/*    diff = ((signed)((nibble & 0x08)?(nibble | 0xF0):(nibble)) + 0.5) * step / 4;    predictor += diff;*/    sign = nibble & 8;    delta = nibble & 7;    diff = step >> 3;    if (delta & 4) diff += step;    if (delta & 2) diff += step >> 1;    if (delta & 1) diff += step >> 2;    if (sign) predictor -= diff;    else predictor += diff;    CLAMP_TO_SHORT(predictor);    c->predictor = predictor;    c->step_index = step_index;    c->step = step_table[step_index];        return (short)predictor;}