select (command)
{
  case CMD_NOP:   rx_nop (&registers, &thread_context);       break;
  case CMD_CMP:   rx_compare (&registers, &thread_context);   break;

  case CMD_ADD:   rx_add (&registers, &thread_context);       break;
  case CMD_SUB:   rx_subtract (&registers, &thread_context);  break;
  case CMD_MUL:   rx_multiply (&registers, &thread_context);  break;
  case CMD_DIV:   rx_divide (&registers, &thread_context);    break;
  case CMD_REM:   rx_remainder (&registers, &thread_context); break;
  case CMD_FPDIV: rx_fp_divide (&registers, &thread_context); break;           /* O(n) */
  ...
}
else
{
  ;
}