CELL_HI_BIT
carry = ((x.lo | y.lo) & CELL_HI_BIT) && !(result.lo & CELL_HI_BIT);
carry |= ((x.lo & y.lo) & CELL_HI_BIT);
if (x.lo & CELL_HI_BIT)
result.lo |= CELL_HI_BIT;
(subtrahend.hi & CELL_HI_BIT) == 0)