src/node_stage.c
void node_handle_scheduled_ops() {
  /* this traversal could be made more efficient since we know what
     ops we tried to schedule last cycle, but for now let's look at
     the whole ready list */
  Op** last = &node->rdy_head;
  for(Op* op = node->rdy_head; op; op = op->next_rdy) {
    if(op->state == OS_SCHEDULED || op->state == OS_MISS) {
      DEBUG(node->proc_id,
            "Removing from RS (and ready list)  op_num:%s op:%s l1:%d\n",
            unsstr64(op->op_num), disasm_op(op, TRUE), op->engine_info.l1_miss);
      *last           = op->next_rdy;
      op->in_rdy_list = FALSE;
      ASSERT(node->proc_id, node->rs[op->rs_id].rs_op_count > 0);
      node->rs[op->rs_id].rs_op_count--;
    } else {
      last = &op->next_rdy;
    }
  }
}
/**************************************************************************************/
/* node_handle_scheduled_ops: Once the op is scheduled (i.e., going from RS to
 * FUs), we need to remove scheduled ops from the RS and ready queue */
Once the op is scheduled , we need to remove scheduled ops from the RS and ready queue
Once the op is scheduled we need to remove scheduled ops from the RS and ready queue
void node_handle_scheduled_ops() {
  Op** last = &node->rdy_head;
  for(Op* op = node->rdy_head; op; op = op->next_rdy) {
    if(op->state == OS_SCHEDULED || op->state == OS_MISS) {
      DEBUG(node->proc_id,
            "Removing from RS (and ready list)  op_num:%s op:%s l1:%d\n",
            unsstr64(op->op_num), disasm_op(op, TRUE), op->engine_info.l1_miss);
      *last           = op->next_rdy;
      op->in_rdy_list = FALSE;
      ASSERT(node->proc_id, node->rs[op->rs_id].rs_op_count > 0);
      node->rs[op->rs_id].rs_op_count--;
    } else {
      last = &op->next_rdy;
    }
  }
}
void node_handle_scheduled_ops ( ) { Op * * last = & node -> rdy_head ; for ( Op * op = node -> rdy_head ; op ; op = op -> next_rdy ) { if ( op -> state == OS_SCHEDULED || op -> state == OS_MISS ) { DEBUG ( node -> proc_id , " \n " , unsstr64 ( op -> op_num ) , disasm_op ( op , TRUE ) , op -> engine_info . l1_miss ) ; * last = op -> next_rdy ; op -> in_rdy_list = FALSE ; ASSERT ( node -> proc_id , node -> rs [ op -> rs_id ] . rs_op_count > 0 ) ; node -> rs [ op -> rs_id ] . rs_op_count -- ; } else { last = & op -> next_rdy ; } } }
node_handle_scheduled_ops: Once the op is scheduled (i.e., going from RS to
 FUs), we need to remove scheduled ops from the RS and ready queue
node_handle_scheduled_ops : Once the op is scheduled ( i . e . going from RS to FUs ) we need to remove scheduled ops from the RS and ready queue
/* this traversal could be made more efficient since we know what
     ops we tried to schedule last cycle, but for now let's look at
     the whole ready list */