Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src
- Timestamp:
- Dec 10, 2008, 7:31:39 PM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management.cpp
r81 r88 38 38 log_printf(FUNC,Address_management,FUNCTION,"Begin"); 39 39 40 #if DEBUG_Address_management == true 41 log_printf(INFO,Address_management,FUNCTION,_("<%s> Parameters"),_name.c_str()); 42 43 std::cout << *param << std::endl; 44 #endif 45 40 46 log_printf(INFO,Address_management,FUNCTION,"Allocation"); 41 47 … … 47 53 48 54 #ifdef STATISTICS 49 if ( _usage & USE_STATISTICS)55 if (usage_is_set(_usage,USE_STATISTICS)) 50 56 { 51 57 log_printf(INFO,Address_management,FUNCTION,"Allocation of statistics"); … … 56 62 57 63 #ifdef VHDL 58 if ( _usage & USE_VHDL)64 if (usage_is_set(_usage,USE_VHDL)) 59 65 { 60 66 // generate the vhdl … … 66 72 67 73 #ifdef SYSTEMC 68 if ( _usage & USE_SYSTEMC)74 if (usage_is_set(_usage,USE_SYSTEMC)) 69 75 { 70 76 // Affect output constant … … 94 100 #endif 95 101 } 102 96 103 log_printf(FUNC,Address_management,FUNCTION,"End"); 97 104 }; … … 104 111 105 112 #ifdef STATISTICS 106 if ( _usage & USE_STATISTICS)113 if (usage_is_set(_usage,USE_STATISTICS)) 107 114 { 108 115 statistics_deallocation(); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management_allocation.cpp
r81 r88 62 62 ALLOC_VALACK_OUT (out_ADDRESS_VAL ,VAL); 63 63 ALLOC_VALACK_IN ( in_ADDRESS_ACK ,ACK); 64 ALLOC_SIGNAL_OUT (out_ADDRESS_INSTRUCTION_ADDRESS ,"instruction_address" ,Tgeneral_address_t,_param->_size_ address);65 ALLOC_SIGNAL_OUT (out_ADDRESS_INST_IFETCH_PTR ,"inst_ifetch_ptr" ,Tinst_ifetch_ptr_t,_param->_size_inst ruction_ptr );64 ALLOC_SIGNAL_OUT (out_ADDRESS_INSTRUCTION_ADDRESS ,"instruction_address" ,Tgeneral_address_t,_param->_size_instruction_address ); 65 ALLOC_SIGNAL_OUT (out_ADDRESS_INST_IFETCH_PTR ,"inst_ifetch_ptr" ,Tinst_ifetch_ptr_t,_param->_size_inst_ifetch_ptr ); 66 66 ALLOC_SIGNAL_OUT (out_ADDRESS_BRANCH_STATE ,"branch_state" ,Tbranch_state_t ,_param->_size_branch_state ); 67 ALLOC_SIGNAL_OUT (out_ADDRESS_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t ,_param->_size_ branch_update_prediction);67 ALLOC_SIGNAL_OUT (out_ADDRESS_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t ,_param->_size_depth); 68 68 } 69 69 … … 80 80 ALLOC_VALACK_OUT (out_PREDICT_VAL ,VAL); 81 81 ALLOC_VALACK_IN ( in_PREDICT_ACK ,ACK); 82 ALLOC_SIGNAL_OUT (out_PREDICT_PC_PREVIOUS ,"pc_previous" ,Tgeneral_address_t,_param->_size_ address);83 ALLOC_SIGNAL_OUT (out_PREDICT_PC_CURRENT ,"pc_current" ,Tgeneral_address_t,_param->_size_ address);82 ALLOC_SIGNAL_OUT (out_PREDICT_PC_PREVIOUS ,"pc_previous" ,Tgeneral_address_t,_param->_size_instruction_address); 83 ALLOC_SIGNAL_OUT (out_PREDICT_PC_CURRENT ,"pc_current" ,Tgeneral_address_t,_param->_size_instruction_address); 84 84 ALLOC_SIGNAL_OUT (out_PREDICT_PC_CURRENT_IS_DS_TAKE ,"pc_current_is_ds_take" ,Tcontrol_t ,1); 85 ALLOC_SIGNAL_IN ( in_PREDICT_PC_NEXT ,"pc_next" ,Tgeneral_address_t,_param->_size_ address);85 ALLOC_SIGNAL_IN ( in_PREDICT_PC_NEXT ,"pc_next" ,Tgeneral_address_t,_param->_size_instruction_address); 86 86 ALLOC_SIGNAL_IN ( in_PREDICT_PC_NEXT_IS_DS_TAKE ,"pc_next_is_ds_take" ,Tcontrol_t ,1); 87 ALLOC_SIGNAL_IN ( in_PREDICT_INST_IFETCH_PTR ,"inst_ifetch_ptr" ,Tinst_ifetch_ptr_t,_param->_size_inst ruction_ptr);87 ALLOC_SIGNAL_IN ( in_PREDICT_INST_IFETCH_PTR ,"inst_ifetch_ptr" ,Tinst_ifetch_ptr_t,_param->_size_inst_ifetch_ptr); 88 88 ALLOC_SIGNAL_IN ( in_PREDICT_BRANCH_STATE ,"branch_state" ,Tbranch_state_t ,_param->_size_branch_state); 89 ALLOC_SIGNAL_IN ( in_PREDICT_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t ,_param->_size_ branch_update_prediction);89 ALLOC_SIGNAL_IN ( in_PREDICT_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t ,_param->_size_depth); 90 90 } 91 91 { … … 99 99 ALLOC_INTERFACE("event", IN, SOUTH, "Event (miss, exception ...)"); 100 100 101 ALLOC_VALACK_IN ( in_EVENT_VAL ,VAL); 102 ALLOC_VALACK_OUT(out_EVENT_ACK ,ACK); 103 ALLOC_SIGNAL_IN ( in_EVENT_ADDRESS,"address",Tgeneral_address_t,_param->_size_address); 101 ALLOC_VALACK_IN ( in_EVENT_VAL ,VAL); 102 ALLOC_VALACK_OUT(out_EVENT_ACK ,ACK); 103 ALLOC_SIGNAL_IN ( in_EVENT_ADDRESS ,"address" ,Tgeneral_address_t,_param->_size_instruction_address); 104 ALLOC_SIGNAL_IN ( in_EVENT_ADDRESS_NEXT ,"address_next" ,Tgeneral_address_t,_param->_size_instruction_address); 105 ALLOC_SIGNAL_IN ( in_EVENT_ADDRESS_NEXT_VAL,"address_next_val",Tcontrol_t,1); 106 ALLOC_SIGNAL_IN ( in_EVENT_IS_DS_TAKE ,"is_ds_take" ,Tcontrol_t,1); 104 107 } 105 108 109 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 if (usage_is_set(_usage,USE_SYSTEMC)) 111 { 112 reg_PC_CURRENT_INSTRUCTION_ENABLE = new Tcontrol_t [_param->_nb_instruction]; 113 reg_PC_NEXT_INSTRUCTION_ENABLE = new Tcontrol_t [_param->_nb_instruction]; 114 } 115 106 116 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 reg_PC_CURRENT_INSTRUCTION_ENABLE = new Tcontrol_t [_param->_nb_instruction];108 reg_PC_NEXT_INSTRUCTION_ENABLE = new Tcontrol_t [_param->_nb_instruction];109 110 117 #ifdef POSITION 111 _component->generate_file(); 118 if (usage_is_set(_usage,USE_POSITION)) 119 _component->generate_file(); 112 120 #endif 113 121 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management_deallocation.cpp
r81 r88 23 23 log_printf(FUNC,Address_management,FUNCTION,"Begin"); 24 24 25 if ( _usage & USE_SYSTEMC)25 if (usage_is_set(_usage,USE_SYSTEMC)) 26 26 { 27 27 delete in_CLOCK ; … … 32 32 delete out_ADDRESS_INSTRUCTION_ADDRESS ; 33 33 delete [] out_ADDRESS_INSTRUCTION_ENABLE ; 34 if (_param->_have_port_inst ruction_ptr)34 if (_param->_have_port_inst_ifetch_ptr) 35 35 delete out_ADDRESS_INST_IFETCH_PTR ; 36 36 delete out_ADDRESS_BRANCH_STATE ; 37 if (_param->_have_port_ branch_update_prediction_id)37 if (_param->_have_port_depth) 38 38 delete out_ADDRESS_BRANCH_UPDATE_PREDICTION_ID; 39 39 delete out_PREDICT_VAL ; … … 45 45 delete in_PREDICT_PC_NEXT_IS_DS_TAKE ; 46 46 delete [] in_PREDICT_INSTRUCTION_ENABLE ; 47 if (_param->_have_port_inst ruction_ptr)47 if (_param->_have_port_inst_ifetch_ptr) 48 48 delete in_PREDICT_INST_IFETCH_PTR ; 49 49 delete in_PREDICT_BRANCH_STATE ; 50 if (_param->_have_port_ branch_update_prediction_id)50 if (_param->_have_port_depth) 51 51 delete in_PREDICT_BRANCH_UPDATE_PREDICTION_ID; 52 52 delete in_EVENT_VAL ; 53 53 delete out_EVENT_ACK ; 54 54 delete in_EVENT_ADDRESS ; 55 delete in_EVENT_ADDRESS_NEXT ; 56 delete in_EVENT_ADDRESS_NEXT_VAL ; 57 delete in_EVENT_IS_DS_TAKE ; 58 59 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 60 if (usage_is_set(_usage,USE_SYSTEMC)) 61 { 62 delete reg_PC_CURRENT_INSTRUCTION_ENABLE; 63 delete reg_PC_NEXT_INSTRUCTION_ENABLE ; 64 } 55 65 } 56 66 57 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~58 delete reg_PC_CURRENT_INSTRUCTION_ENABLE;59 delete reg_PC_NEXT_INSTRUCTION_ENABLE ;60 67 61 68 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management_end_cycle.cpp
r81 r88 25 25 26 26 #ifdef STATISTICS 27 _stat->end_cycle(); 27 if (usage_is_set(_usage,USE_STATISTICS)) 28 _stat->end_cycle(); 28 29 #endif 29 30 … … 31 32 // Evaluation before read the ouput signal 32 33 // sc_start(0); 33 _interfaces->testbench(); 34 if (usage_is_set(_usage,USE_VHDL_TESTBENCH)) 35 _interfaces->testbench(); 34 36 #endif 35 37 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management_genMoore.cpp
r84 r88 32 32 PORT_WRITE(out_ADDRESS_VAL ,internal_ADDRESS_VAL ); 33 33 PORT_WRITE(out_ADDRESS_INSTRUCTION_ADDRESS ,reg_PC_CURRENT ); 34 if (_param->_have_port_inst ruction_ptr)34 if (_param->_have_port_inst_ifetch_ptr) 35 35 PORT_WRITE(out_ADDRESS_INST_IFETCH_PTR ,reg_PC_CURRENT_INST_IFETCH_PTR ); 36 36 PORT_WRITE(out_ADDRESS_BRANCH_STATE ,reg_PC_CURRENT_BRANCH_STATE ); 37 if (_param->_have_port_ branch_update_prediction_id)37 if (_param->_have_port_depth) 38 38 PORT_WRITE(out_ADDRESS_BRANCH_UPDATE_PREDICTION_ID,reg_PC_CURRENT_BRANCH_UPDATE_PREDICTION_ID); 39 39 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management_transition.cpp
r84 r88 22 22 void Address_management::transition (void) 23 23 { 24 log_printf(FUNC,Address_management,FUNCTION,"Begin"); 24 log_begin(Address_management,FUNCTION); 25 log_function(Address_management,FUNCTION,_name.c_str()); 25 26 26 27 if (PORT_READ(in_NRESET) == 0) … … 28 29 // nothing is valid 29 30 reg_PC_CURRENT_VAL = 0; 30 reg_PC_NEXT_VAL = 0; 31 32 reg_PC_NEXT_VAL = 1; 33 reg_PC_NEXT = 0x100>>2; 34 31 35 reg_PC_NEXT_NEXT_VAL = 0; 32 36 } … … 40 44 for (uint32_t i=0; i<_param->_nb_instruction; i++) 41 45 reg_PC_NEXT_INSTRUCTION_ENABLE [i] = PORT_READ(in_PREDICT_INSTRUCTION_ENABLE [i]); 42 if (_param->_have_port_inst ruction_ptr)46 if (_param->_have_port_inst_ifetch_ptr) 43 47 reg_PC_NEXT_INST_IFETCH_PTR = PORT_READ(in_PREDICT_INST_IFETCH_PTR ); 44 48 reg_PC_NEXT_BRANCH_STATE = PORT_READ(in_PREDICT_BRANCH_STATE ); 45 if (_param->_have_port_ branch_update_prediction_id)49 if (_param->_have_port_depth) 46 50 reg_PC_NEXT_BRANCH_UPDATE_PREDICTION_ID = PORT_READ(in_PREDICT_BRANCH_UPDATE_PREDICTION_ID); 47 51 … … 51 55 52 56 #ifdef STATISTICS 53 (*_stat_nb_transaction_predict) ++; 57 if (usage_is_set(_usage,USE_STATISTICS)) 58 (*_stat_nb_transaction_predict) ++; 54 59 #endif 55 60 } … … 62 67 { 63 68 #ifdef STATISTICS 64 if (reg_PC_CURRENT_VAL) 65 { 66 (*_stat_nb_transaction_address) ++; 67 68 for (uint32_t i=0; i<_param->_nb_instruction; i++) 69 if (reg_PC_CURRENT_INSTRUCTION_ENABLE [i] == true) 70 (*_stat_sum_packet_size) ++; 71 } 69 if (usage_is_set(_usage,USE_STATISTICS)) 70 if (reg_PC_CURRENT_VAL) 71 { 72 (*_stat_nb_transaction_address) ++; 73 74 for (uint32_t i=0; i<_param->_nb_instruction; i++) 75 if (reg_PC_CURRENT_INSTRUCTION_ENABLE [i] == true) 76 (*_stat_sum_packet_size) ++; 77 } 72 78 #endif 73 79 … … 110 116 if (PORT_READ(in_EVENT_VAL) and internal_EVENT_ACK) 111 117 { 112 log_printf(TRACE,Address_management,FUNCTION,"EVENT : Transaction"); 118 log_printf(TRACE,Address_management,FUNCTION," * EVENT : Transaction"); 119 log_printf(TRACE,Address_management,FUNCTION," * IS_DS_TAKE : %d" ,PORT_READ(in_EVENT_IS_DS_TAKE )); 120 log_printf(TRACE,Address_management,FUNCTION," * ADDRESS : %.8x (%.8x)",PORT_READ(in_EVENT_ADDRESS ),PORT_READ(in_EVENT_ADDRESS )<<2); 121 log_printf(TRACE,Address_management,FUNCTION," * ADDRESS_NEXT : %.8x (%.8x)",PORT_READ(in_EVENT_ADDRESS_NEXT ),PORT_READ(in_EVENT_ADDRESS_NEXT )<<2); 122 log_printf(TRACE,Address_management,FUNCTION," * ADDRESS_NEXT_VAL : %d" ,PORT_READ(in_EVENT_ADDRESS_NEXT_VAL)); 113 123 reg_PC_CURRENT_VAL = 0; 114 124 reg_PC_NEXT_VAL = 1; … … 118 128 // * load miss speculation : the load is execute, the event_address is the next address (also the destination of branch) 119 129 // * exception : goto the first instruction of exception handler (also is not in delay slot). 120 reg_PC_NEXT_IS_DS_TAKE = 0; 130 131 reg_PC_NEXT_IS_DS_TAKE = PORT_READ(in_EVENT_IS_DS_TAKE); 121 132 // reg_PC_NEXT_INST_IFETCH_PTR = 0; 122 133 // reg_PC_NEXT_BRANCH_STATE = BRANCH_STATE_NONE; 123 134 // reg_PC_NEXT_BRANCH_UPDATE_PREDICTION_ID = 0; 124 135 125 //reg_PC_NEXT_INSTRUCTION_ENABLE [0] = 1; // only the instruction at the event address is valid, because we have no information on the branch presence in the instruction bundle.126 //for (uint32_t i=1; i<_param->_nb_instruction; i++)127 //reg_PC_NEXT_INSTRUCTION_ENABLE [i] = 0;136 reg_PC_NEXT_INSTRUCTION_ENABLE [0] = 1; // only the instruction at the event address is valid, because we have no information on the branch presence in the instruction bundle. 137 for (uint32_t i=1; i<_param->_nb_instruction; i++) 138 reg_PC_NEXT_INSTRUCTION_ENABLE [i] = 0; 128 139 129 reg_PC_NEXT_NEXT_VAL = 0; // cancel all prediction (event is send at the predict unit) 140 reg_PC_NEXT_NEXT_VAL = PORT_READ(in_EVENT_ADDRESS_NEXT_VAL); 141 reg_PC_NEXT_NEXT = PORT_READ(in_EVENT_ADDRESS_NEXT); 142 reg_PC_NEXT_NEXT_IS_DS_TAKE = 0;//?? 143 144 // Note : is_ds_take = address_next_val 145 // Because, is not ds take, can continue in sequence 146 147 #ifdef DEBUG_TEST 148 if (PORT_READ(in_EVENT_ADDRESS_NEXT_VAL) and not PORT_READ(in_EVENT_IS_DS_TAKE)) 149 throw ERRORMORPHEO(FUNCTION,_("Event : address_next_next_val but next is not a ds take")); 150 #endif 130 151 131 152 #ifdef STATISTICS 132 (*_stat_nb_transaction_event) ++; 153 if (usage_is_set(_usage,USE_STATISTICS)) 154 (*_stat_nb_transaction_event) ++; 133 155 #endif 134 156 } 135 157 } 136 158 137 #if DEBUG >= DEBUG_TRACE138 log_printf(TRACE,Address_management,FUNCTION," Address_Management :");139 log_printf(TRACE,Address_management,FUNCTION," Current : %d %d 0x%x",reg_PC_CURRENT_VAL, reg_PC_CURRENT_IS_DS_TAKE, reg_PC_CURRENT);140 log_printf(TRACE,Address_management,FUNCTION," Next : %d %d 0x%x",reg_PC_NEXT_VAL, reg_PC_NEXT_IS_DS_TAKE, reg_PC_NEXT);141 log_printf(TRACE,Address_management,FUNCTION," Next_Next : %d %d 0x%x",reg_PC_NEXT_NEXT_VAL, reg_PC_NEXT_NEXT_IS_DS_TAKE, reg_PC_NEXT_NEXT);159 #if defined(DEBUG) and (DEBUG >= DEBUG_TRACE) 160 log_printf(TRACE,Address_management,FUNCTION," * Dump PC"); 161 log_printf(TRACE,Address_management,FUNCTION," * Current : %d %d 0x%.8x (%.8x)",reg_PC_CURRENT_VAL , reg_PC_CURRENT_IS_DS_TAKE , reg_PC_CURRENT , reg_PC_CURRENT <<2); 162 log_printf(TRACE,Address_management,FUNCTION," * Next : %d %d 0x%.8x (%.8x)",reg_PC_NEXT_VAL , reg_PC_NEXT_IS_DS_TAKE , reg_PC_NEXT , reg_PC_NEXT <<2); 163 log_printf(TRACE,Address_management,FUNCTION," * Next_Next : %d %d 0x%.8x (%.8x)",reg_PC_NEXT_NEXT_VAL, reg_PC_NEXT_NEXT_IS_DS_TAKE, reg_PC_NEXT_NEXT, reg_PC_NEXT_NEXT<<2); 142 164 #endif 143 165 … … 145 167 end_cycle (); 146 168 #endif 147 148 log_ printf(FUNC,Address_management,FUNCTION,"End");169 170 log_end(Address_management,FUNCTION); 149 171 }; 150 172 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Parameters.cpp
r81 r88 21 21 Parameters::Parameters (uint32_t nb_instruction, 22 22 uint32_t size_address , 23 uint32_t size_branch_update_prediction) 23 uint32_t size_branch_update_prediction, 24 bool is_toplevel) 24 25 { 25 26 log_printf(FUNC,Address_management,FUNCTION,"Begin"); 26 27 27 _nb_instruction = nb_instruction ; 28 _size_address = size_address ; 29 _size_branch_update_prediction = size_branch_update_prediction; 30 31 _size_instruction_ptr = log2(nb_instruction); 32 33 _have_port_instruction_ptr = _size_instruction_ptr > 0; 34 _have_port_branch_update_prediction_id = size_branch_update_prediction > 0; 28 _nb_instruction = nb_instruction ; 35 29 36 30 test(); 31 32 if (is_toplevel) 33 { 34 _size_instruction_address = size_address ; 35 _size_depth = size_branch_update_prediction; 36 _size_inst_ifetch_ptr = log2(nb_instruction); 37 38 _have_port_inst_ifetch_ptr = _size_inst_ifetch_ptr > 0; 39 _have_port_depth = _size_depth > 0; 40 41 copy(); 42 } 43 37 44 log_printf(FUNC,Address_management,FUNCTION,"End"); 38 45 }; … … 55 62 }; 56 63 64 #undef FUNCTION 65 #define FUNCTION "Address_management::copy" 66 void Parameters::copy (void) 67 { 68 log_printf(FUNC,Address_management,FUNCTION,"Begin"); 69 log_printf(FUNC,Address_management,FUNCTION,"End"); 70 }; 71 57 72 }; // end namespace address_management 58 73 }; // end namespace ifetch_unit -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Parameters_print.cpp
r81 r88 24 24 log_printf(FUNC,Address_management,FUNCTION,"Begin"); 25 25 26 XML xml ("address_management");26 // XML xml ("address_management"); 27 27 28 xml.balise_open("address_management"); 29 xml.singleton_begin("nb_instruction "); xml.attribut("value",toString(_nb_instruction )); xml.singleton_end(); 30 xml.singleton_begin("size_address "); xml.attribut("value",toString(_size_address )); xml.singleton_end(); 31 xml.singleton_begin("size_branch_update_prediction"); xml.attribut("value",toString(_size_branch_update_prediction)); xml.singleton_end(); 32 xml.balise_close(); 28 // xml.balise_open("address_management"); 29 // xml.singleton_begin("nb_instruction "); xml.attribut("value",toString(_nb_instruction )); xml.singleton_end(); 30 // // xml.singleton_begin("size_address "); xml.attribut("value",toString(_size_address )); xml.singleton_end(); 31 // // xml.singleton_begin("size_branch_update_prediction"); xml.attribut("value",toString(_size_branch_update_prediction)); xml.singleton_end(); 32 // xml.balise_close(); 33 34 // return xml.get_body(depth); 35 36 std::string str = ""; 33 37 34 38 log_printf(FUNC,Address_management,FUNCTION,"End"); 35 36 return xml.get_body(depth);39 40 return str; 37 41 }; 38 42
Note: See TracChangeset
for help on using the changeset viewer.