x->xp, +do while loop