Changeset 118 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_genMoore.cpp
- Timestamp:
- May 21, 2009, 12:01:32 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_genMoore.cpp
r105 r118 28 28 // =================================================================== 29 29 { 30 log_printf(TRACE,Commit_unit,FUNCTION," * REEXECUTE [0]"); 31 30 32 // Store instruction comming Out Of Order in Load Store Unit. 31 33 // Must be executed in no speculative mode. Also, send a signal when an Store is in head of ROB 32 34 33 Tcontrol_t val = false; 34 35 if (not _rob[reg_NUM_BANK_HEAD].empty()) 36 { 37 entry_t * entry = _rob [reg_NUM_BANK_HEAD].front(); 35 Tcontrol_t val = false; 36 uint32_t num_bank = reg_NUM_BANK_HEAD; 37 38 if (not _rob[num_bank].empty()) 39 { 40 log_printf(TRACE,Commit_unit,FUNCTION," * ROB is not empty"); 41 log_printf(TRACE,Commit_unit,FUNCTION," * num_bank : %d",num_bank); 42 43 entry_t * entry = _rob [num_bank].front(); 38 44 rob_state_t state = entry->state; 39 45 … … 41 47 val = ((state == ROB_STORE_HEAD_OK) or 42 48 (state == ROB_STORE_HEAD_KO)); 43 49 50 log_printf(TRACE,Commit_unit,FUNCTION," * val : %d",val); 44 51 if (val) 45 52 { 53 Tpacket_t packet_id = ((entry->ptr << _param->_shift_num_slot) | num_bank); 54 55 log_printf(TRACE,Commit_unit,FUNCTION," * packet_id : %d",packet_id); 56 46 57 // Reexecute store 47 58 if (_param->_have_port_context_id) … … 50 61 PORT_WRITE(out_REEXECUTE_FRONT_END_ID [0], entry->front_end_id ); 51 62 if (_param->_have_port_rob_ptr ) 52 PORT_WRITE(out_REEXECUTE_PACKET_ID [0], entry->ptr);63 PORT_WRITE(out_REEXECUTE_PACKET_ID [0], packet_id ); 53 64 PORT_WRITE(out_REEXECUTE_TYPE [0], entry->type ); 54 65 PORT_WRITE(out_REEXECUTE_STORE_QUEUE_PTR_WRITE [0], entry->store_queue_ptr_write); … … 58 69 59 70 internal_REEXECUTE_VAL [0] = val; 60 internal_REEXECUTE_NUM_BANK [0] = reg_NUM_BANK_HEAD;71 internal_REEXECUTE_NUM_BANK [0] = num_bank; 61 72 62 73 PORT_WRITE(out_REEXECUTE_VAL[0], internal_REEXECUTE_VAL [0]);
Note: See TracChangeset
for help on using the changeset viewer.