/* Workaround: store BEFORE the comparison so the SUB that evaluates the
 * comparison no longer sits on the store path. Generates correct code. */
unsigned char vx;
void update(unsigned char n)
{
    unsigned char old = vx;
    vx = n;                 /* store first, with A still holding n */
    if (n != old) {
        /* redraw / side effect */
    }
}
