- for (i = 0; i < l; i++) {
- t = x[i];
- x[i] += y[i]; x[i] &= ((TF_UNIT_TYPE)~0);
- if (x[i] < t) {
-_again: f++;
- t = x[f-i];
- x[f-i]++;
- if (x[f-i] < t) goto _again;
- else f = 0;
- }
+ for (z = 0, cf = 0; z < xl; z++) {
+ t = x[z] + (z >= yl ? (TF_UNIT_TYPE)0 : y[z]) + cf;
+ if (cf) cf = (x[z] >= t ? 1 : 0);
+ else cf = (x[z] > t ? 1 : 0);
+ x[z] = t;