enum {dummy0=0,plus=3, dummy1=5, dummy2=7, dummy3=10, dummy4=13};

void vm(long *ip, long *sp)
{
  for (;;) {
    switch (*ip++) {
    case dummy0: /* + */
      sp[0]--;
      break;
    case plus: /* + */
      sp[1] += sp[0];
      sp++;
      break;
    case dummy1: /* + */
      sp[0] = 0;
      break;
    case dummy2: /* + */
      sp++;
      break;
    case dummy3: /* + */
      sp--;
      sp[0] = sp[1];
      break;
    case dummy4: /* + */
      sp[1] = 0;
      break;
    }
  }
}
