- Timestamp:
- Feb 16, 2010, 1:35:48 PM (14 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end
- Files:
-
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/include/Types.h
r134 r137 36 36 // Tdepth_t _depth ; 37 37 38 // set by decod 38 // set by decod 39 #ifdef STATISTICS 40 uint32_t _opcod ; 41 #endif 39 42 Ttype_t _type ; 40 43 Toperation_t _operation ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/src/Instruction.cpp
r117 r137 215 215 switch (opcod) 216 216 { 217 case OPCOD_L_CUST1 : {inst->_type = instruction_information(INSTRUCTION_L_CUST1)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST1)._operation; break;} 218 case OPCOD_L_CUST2 : {inst->_type = instruction_information(INSTRUCTION_L_CUST2)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST2)._operation; break;} 219 case OPCOD_L_CUST3 : {inst->_type = instruction_information(INSTRUCTION_L_CUST3)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST3)._operation; break;} 220 case OPCOD_L_CUST4 : {inst->_type = instruction_information(INSTRUCTION_L_CUST4)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST4)._operation; break;} 221 case OPCOD_L_CUST5 : {inst->_type = instruction_information(INSTRUCTION_L_CUST5)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST5)._operation; break;} 222 case OPCOD_L_CUST6 : {inst->_type = instruction_information(INSTRUCTION_L_CUST6)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST6)._operation; break;} 223 case OPCOD_L_CUST7 : {inst->_type = instruction_information(INSTRUCTION_L_CUST7)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST7)._operation; break;} 224 case OPCOD_L_CUST8 : {inst->_type = instruction_information(INSTRUCTION_L_CUST8)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST8)._operation; break;} 217 case OPCOD_L_CUST1 : 218 { 219 #ifdef STATISTICS 220 inst->_opcod = INSTRUCTION_L_CUST1; 221 #endif 222 inst->_type = instruction_information(INSTRUCTION_L_CUST1)._type; 223 inst->_operation = instruction_information(INSTRUCTION_L_CUST1)._operation; 224 break; 225 } 226 case OPCOD_L_CUST2 : 227 { 228 #ifdef STATISTICS 229 inst->_opcod = INSTRUCTION_L_CUST2; 230 #endif 231 inst->_type = instruction_information(INSTRUCTION_L_CUST2)._type; 232 inst->_operation = instruction_information(INSTRUCTION_L_CUST2)._operation; 233 break; 234 } 235 case OPCOD_L_CUST3 : 236 { 237 #ifdef STATISTICS 238 inst->_opcod = INSTRUCTION_L_CUST3; 239 #endif 240 inst->_type = instruction_information(INSTRUCTION_L_CUST3)._type; 241 inst->_operation = instruction_information(INSTRUCTION_L_CUST3)._operation; 242 break; 243 } 244 case OPCOD_L_CUST4 : 245 { 246 #ifdef STATISTICS 247 inst->_opcod = INSTRUCTION_L_CUST4; 248 #endif 249 inst->_type = instruction_information(INSTRUCTION_L_CUST4)._type; 250 inst->_operation = instruction_information(INSTRUCTION_L_CUST4)._operation; 251 break; 252 } 253 case OPCOD_L_CUST5 : 254 { 255 #ifdef STATISTICS 256 inst->_opcod = INSTRUCTION_L_CUST5; 257 #endif 258 inst->_type = instruction_information(INSTRUCTION_L_CUST5)._type; 259 inst->_operation = instruction_information(INSTRUCTION_L_CUST5)._operation; 260 break; 261 } 262 case OPCOD_L_CUST6 : 263 { 264 #ifdef STATISTICS 265 inst->_opcod = INSTRUCTION_L_CUST6; 266 #endif 267 inst->_type = instruction_information(INSTRUCTION_L_CUST6)._type; 268 inst->_operation = instruction_information(INSTRUCTION_L_CUST6)._operation; 269 break; 270 } 271 case OPCOD_L_CUST7 : 272 { 273 #ifdef STATISTICS 274 inst->_opcod = INSTRUCTION_L_CUST7; 275 #endif 276 inst->_type = instruction_information(INSTRUCTION_L_CUST7)._type; 277 inst->_operation = instruction_information(INSTRUCTION_L_CUST7)._operation; 278 break; 279 } 280 case OPCOD_L_CUST8 : 281 { 282 #ifdef STATISTICS 283 inst->_opcod = INSTRUCTION_L_CUST8; 284 #endif 285 inst->_type = instruction_information(INSTRUCTION_L_CUST8)._type; 286 inst->_operation = instruction_information(INSTRUCTION_L_CUST8)._operation; 287 break; 288 } 225 289 226 290 default : {throw ERRORMORPHEO("instruction_l_custom",_("Invalid Custom Opcod."));} … … 240 304 switch (opcod) 241 305 { 242 // case OPCOD_LF_CUST1_D : {inst->_type = instruction_information(INSTRUCTION_LF_CUST1_D)._type; inst->_operation = instruction_information(INSTRUCTION_LF_CUST1_D)._operation; break;} 243 // case OPCOD_LF_CUST1_S : {inst->_type = instruction_information(INSTRUCTION_LF_CUST1_S)._type; inst->_operation = instruction_information(INSTRUCTION_LF_CUST1_S)._operation; break;} 306 // case OPCOD_LF_CUST1_D : 307 // { 308 // #ifdef STATISTICS 309 // inst->_opcod = INSTRUCTION_LF_CUST1_D; 310 // #endif 311 // inst->_type = instruction_information(INSTRUCTION_LF_CUST1_D)._type; 312 // inst->_operation = instruction_information(INSTRUCTION_LF_CUST1_D)._operation; 313 // break; 314 // } 315 // case OPCOD_LF_CUST1_S : 316 // { 317 // #ifdef STATISTICS 318 // inst->_opcod = INSTRUCTION_LF_CUST1_S; 319 // #endif 320 // inst->_type = instruction_information(INSTRUCTION_LF_CUST1_S)._type; 321 // inst->_operation = instruction_information(INSTRUCTION_LF_CUST1_S)._operation; 322 // break; 323 // } 244 324 default : {throw ERRORMORPHEO("instruction_lf_custom",_("Invalid Custom Opcod."));} 245 325 } … … 258 338 switch (opcod) 259 339 { 260 // case OPCOD_LV_CUST1 : {inst->_type = instruction_information(INSTRUCTION_LV_CUST1)._type; inst->_operation = instruction_information(INSTRUCTION_LV_CUST1)._operation; break;} 261 // case OPCOD_LV_CUST2 : {inst->_type = instruction_information(INSTRUCTION_LV_CUST2)._type; inst->_operation = instruction_information(INSTRUCTION_LV_CUST2)._operation; break;} 262 // case OPCOD_LV_CUST3 : {inst->_type = instruction_information(INSTRUCTION_LV_CUST3)._type; inst->_operation = instruction_information(INSTRUCTION_LV_CUST3)._operation; break;} 263 // case OPCOD_LV_CUST4 : {inst->_type = instruction_information(INSTRUCTION_LV_CUST4)._type; inst->_operation = instruction_information(INSTRUCTION_LV_CUST4)._operation; break;} 340 // case OPCOD_LV_CUST1 : 341 // { 342 // #ifdef STATISTICS 343 // inst->_opcod = INSTRUCTION_LV_CUST1; 344 // #endif 345 // inst->_type = instruction_information(INSTRUCTION_LV_CUST1)._type; 346 // inst->_operation = instruction_information(INSTRUCTION_LV_CUST1)._operation; 347 // break; 348 // } 349 // case OPCOD_LV_CUST2 : 350 // { 351 // #ifdef STATISTICS 352 // inst->_opcod = INSTRUCTION_LV_CUST2; 353 // #endif 354 // inst->_type = instruction_information(INSTRUCTION_LV_CUST2)._type; 355 // inst->_operation = instruction_information(INSTRUCTION_LV_CUST2)._operation; 356 // break; 357 // } 358 // case OPCOD_LV_CUST3 : 359 // { 360 // #ifdef STATISTICS 361 // inst->_opcod = INSTRUCTION_LV_CUST3; 362 // #endif 363 // inst->_type = instruction_information(INSTRUCTION_LV_CUST3)._type; 364 // inst->_operation = instruction_information(INSTRUCTION_LV_CUST3)._operation; 365 // break; 366 // } 367 // case OPCOD_LV_CUST4 : 368 // { 369 // #ifdef STATISTICS 370 // inst->_opcod = INSTRUCTION_LV_CUST4; 371 // #endif 372 // inst->_type = instruction_information(INSTRUCTION_LV_CUST4)._type; 373 // inst->_operation = instruction_information(INSTRUCTION_LV_CUST4)._operation; 374 // break; 375 // } 264 376 default : {throw ERRORMORPHEO("instruction_lv_custom",_("Invalid Custom Opcod."));} 265 377 } … … 324 436 { 325 437 log_printf(TRACE,Decod,"instruction_l_add"," * instruction : l.add"); 438 #ifdef STATISTICS 439 inst->_opcod = INSTRUCTION_L_ADD; 440 #endif 326 441 inst->_type = instruction_information(INSTRUCTION_L_ADD)._type ; //TYPE_ALU; 327 442 inst->_operation = instruction_information(INSTRUCTION_L_ADD)._operation; //OPERATION_ALU_L_ADD; … … 352 467 log_printf(TRACE,Decod,"instruction_l_addc"," * instruction : l.addc"); 353 468 469 #ifdef STATISTICS 470 inst->_opcod = INSTRUCTION_L_ADDC; 471 #endif 354 472 inst->_type = instruction_information(INSTRUCTION_L_ADDC)._type ; //TYPE_ALU; 355 473 inst->_operation = instruction_information(INSTRUCTION_L_ADDC)._operation; //OPERATION_ALU_L_ADD; … … 380 498 log_printf(TRACE,Decod,"instruction_l_addi"," * instruction : l.addi"); 381 499 500 #ifdef STATISTICS 501 inst->_opcod = INSTRUCTION_L_ADDI; 502 #endif 382 503 inst->_type = instruction_information(INSTRUCTION_L_ADDI)._type ; //TYPE_ALU; 383 504 inst->_operation = instruction_information(INSTRUCTION_L_ADDI)._operation; //OPERATION_ALU_L_ADD; … … 408 529 log_printf(TRACE,Decod,"instruction_l_addic"," * instruction : l.addic"); 409 530 531 #ifdef STATISTICS 532 inst->_opcod = INSTRUCTION_L_ADDIC; 533 #endif 410 534 inst->_type = instruction_information(INSTRUCTION_L_ADDIC)._type ; //TYPE_ALU; 411 535 inst->_operation = instruction_information(INSTRUCTION_L_ADDIC)._operation; //OPERATION_ALU_L_ADD; … … 436 560 log_printf(TRACE,Decod,"instruction_l_and"," * instruction : l.and"); 437 561 562 #ifdef STATISTICS 563 inst->_opcod = INSTRUCTION_L_AND; 564 #endif 438 565 inst->_type = instruction_information(INSTRUCTION_L_AND)._type ; //TYPE_ALU; 439 566 inst->_operation = instruction_information(INSTRUCTION_L_AND)._operation; //OPERATION_ALU_L_AND; … … 464 591 log_printf(TRACE,Decod,"instruction_l_andi"," * instruction : l.andi"); 465 592 593 #ifdef STATISTICS 594 inst->_opcod = INSTRUCTION_L_ANDI; 595 #endif 466 596 inst->_type = instruction_information(INSTRUCTION_L_ANDI)._type ; //TYPE_ALU; 467 597 inst->_operation = instruction_information(INSTRUCTION_L_ANDI)._operation; //OPERATION_ALU_L_AND; … … 495 625 ); 496 626 627 #ifdef STATISTICS 628 inst->_opcod = INSTRUCTION_L_BF; 629 #endif 497 630 inst->_type = instruction_information(INSTRUCTION_L_BF)._type ; //TYPE_BRANCH; 498 631 inst->_operation = instruction_information(INSTRUCTION_L_BF)._operation; //OPERATION_BRANCH_L_TEST_F; … … 527 660 ); 528 661 662 #ifdef STATISTICS 663 inst->_opcod = INSTRUCTION_L_BNF; 664 #endif 529 665 inst->_type = instruction_information(INSTRUCTION_L_BNF)._type ; //TYPE_BRANCH; 530 666 inst->_operation = instruction_information(INSTRUCTION_L_BNF)._operation; //OPERATION_BRANCH_L_TEST_NF; … … 555 691 log_printf(TRACE,Decod,"instruction_l_cmov"," * instruction : l.cmov"); 556 692 693 #ifdef STATISTICS 694 inst->_opcod = INSTRUCTION_L_CMOV; 695 #endif 557 696 inst->_type = instruction_information(INSTRUCTION_L_CMOV)._type ; //TYPE_MOVE; 558 697 inst->_operation = instruction_information(INSTRUCTION_L_CMOV)._operation; //OPERATION_MOVE_L_CMOV; … … 589 728 else 590 729 { 730 #ifdef STATISTICS 731 inst->_opcod = INSTRUCTION_L_CSYNC; 732 #endif 591 733 inst->_type = instruction_information(INSTRUCTION_L_CSYNC)._type ; //TYPE_SPECIAL; 592 734 inst->_operation = instruction_information(INSTRUCTION_L_CSYNC)._operation; //OPERATION_SPECIAL_L_CSYNC; … … 627 769 log_printf(TRACE,Decod,"instruction_l_div"," * instruction : l.div"); 628 770 771 #ifdef STATISTICS 772 inst->_opcod = INSTRUCTION_L_DIV; 773 #endif 629 774 inst->_type = instruction_information(INSTRUCTION_L_DIV)._type ; //TYPE_DIV; 630 775 inst->_operation = instruction_information(INSTRUCTION_L_DIV)._operation; //OPERATION_DIV_L_DIV; … … 655 800 log_printf(TRACE,Decod,"instruction_l_divu"," * instruction : l.divu"); 656 801 802 #ifdef STATISTICS 803 inst->_opcod = INSTRUCTION_L_DIVU; 804 #endif 657 805 inst->_type = instruction_information(INSTRUCTION_L_DIVU)._type ; //TYPE_DIV; 658 806 inst->_operation = instruction_information(INSTRUCTION_L_DIVU)._operation; //OPERATION_DIV_L_DIVU; … … 683 831 log_printf(TRACE,Decod,"instruction_l_extbs"," * instruction : l.extbs"); 684 832 833 #ifdef STATISTICS 834 inst->_opcod = INSTRUCTION_L_EXTBS; 835 #endif 685 836 inst->_type = instruction_information(INSTRUCTION_L_EXTBS)._type ; //TYPE_EXTEND; 686 837 inst->_operation = instruction_information(INSTRUCTION_L_EXTBS)._operation; //OPERATION_EXTEND_L_EXTEND_S; … … 711 862 log_printf(TRACE,Decod,"instruction_l_extbz"," * instruction : l.extbz"); 712 863 864 #ifdef STATISTICS 865 inst->_opcod = INSTRUCTION_L_EXTBZ; 866 #endif 713 867 inst->_type = instruction_information(INSTRUCTION_L_EXTBZ)._type ; //TYPE_EXTEND; 714 868 inst->_operation = instruction_information(INSTRUCTION_L_EXTBZ)._operation; //OPERATION_EXTEND_L_EXTEND_Z; … … 739 893 log_printf(TRACE,Decod,"instruction_l_exths"," * instruction : l.exths"); 740 894 895 #ifdef STATISTICS 896 inst->_opcod = INSTRUCTION_L_EXTHS; 897 #endif 741 898 inst->_type = instruction_information(INSTRUCTION_L_EXTHS)._type ; //TYPE_EXTEND; 742 899 inst->_operation = instruction_information(INSTRUCTION_L_EXTHS)._operation; //OPERATION_EXTEND_L_EXTEND_S; … … 767 924 log_printf(TRACE,Decod,"instruction_l_exthz"," * instruction : l.exthz"); 768 925 926 #ifdef STATISTICS 927 inst->_opcod = INSTRUCTION_L_EXTHZ; 928 #endif 769 929 inst->_type = instruction_information(INSTRUCTION_L_EXTHZ)._type ; //TYPE_EXTEND; 770 930 inst->_operation = instruction_information(INSTRUCTION_L_EXTHZ)._operation; //OPERATION_EXTEND_L_EXTEND_Z; … … 795 955 log_printf(TRACE,Decod,"instruction_l_extws"," * instruction : l.extws"); 796 956 957 #ifdef STATISTICS 958 inst->_opcod = INSTRUCTION_L_EXTWS; 959 #endif 797 960 inst->_type = instruction_information(INSTRUCTION_L_EXTWS)._type ; //TYPE_EXTEND; 798 961 inst->_operation = instruction_information(INSTRUCTION_L_EXTWS)._operation; //OPERATION_EXTEND_L_EXTEND_S; … … 823 986 log_printf(TRACE,Decod,"instruction_l_extwz"," * instruction : l.extwz"); 824 987 988 #ifdef STATISTICS 989 inst->_opcod = INSTRUCTION_L_EXTWZ; 990 #endif 825 991 inst->_type = instruction_information(INSTRUCTION_L_EXTWZ)._type ; //TYPE_EXTEND; 826 992 inst->_operation = instruction_information(INSTRUCTION_L_EXTWZ)._operation; //OPERATION_EXTEND_L_EXTEND_Z; … … 851 1017 log_printf(TRACE,Decod,"instruction_l_ff1"," * instruction : l.ff1"); 852 1018 1019 #ifdef STATISTICS 1020 inst->_opcod = INSTRUCTION_L_FF1; 1021 #endif 853 1022 inst->_type = instruction_information(INSTRUCTION_L_FF1)._type ; //TYPE_FIND; 854 1023 inst->_operation = instruction_information(INSTRUCTION_L_FF1)._operation; //OPERATION_FIND_L_FF1; … … 879 1048 log_printf(TRACE,Decod,"instruction_l_fl1"," * instruction : l.fl1"); 880 1049 1050 #ifdef STATISTICS 1051 inst->_opcod = INSTRUCTION_L_FL1; 1052 #endif 881 1053 inst->_type = instruction_information(INSTRUCTION_L_FL1)._type ; //TYPE_FIND; 882 1054 inst->_operation = instruction_information(INSTRUCTION_L_FL1)._operation; //OPERATION_FIND_L_FL1; … … 907 1079 log_printf(TRACE,Decod,"instruction_l_j"," * instruction : l.j"); 908 1080 1081 #ifdef STATISTICS 1082 inst->_opcod = INSTRUCTION_L_J; 1083 #endif 909 1084 inst->_type = instruction_information(INSTRUCTION_L_J)._type ; //TYPE_BRANCH; 910 1085 inst->_operation = instruction_information(INSTRUCTION_L_J)._operation; //OPERATION_BRANCH_NONE; … … 936 1111 log_printf(TRACE,Decod,"instruction_l_jal"," * instruction : l.jal"); 937 1112 1113 #ifdef STATISTICS 1114 inst->_opcod = INSTRUCTION_L_JAL; 1115 #endif 938 1116 inst->_type = instruction_information(INSTRUCTION_L_JAL)._type ; //TYPE_BRANCH; 939 1117 inst->_operation = instruction_information(INSTRUCTION_L_JAL)._operation; //OPERATION_BRANCH_L_JALR; … … 973 1151 else 974 1152 { 1153 #ifdef STATISTICS 1154 inst->_opcod = INSTRUCTION_L_JALR; 1155 #endif 975 1156 inst->_type = instruction_information(INSTRUCTION_L_JALR)._type ; //TYPE_BRANCH; 976 1157 inst->_operation = instruction_information(INSTRUCTION_L_JALR)._operation; //OPERATION_BRANCH_L_JALR; … … 1003 1184 log_printf(TRACE,Decod,"instruction_l_jr"," * instruction : l.jr"); 1004 1185 1186 #ifdef STATISTICS 1187 inst->_opcod = INSTRUCTION_L_JR; 1188 #endif 1005 1189 inst->_type = instruction_information(INSTRUCTION_L_JR)._type ; //TYPE_BRANCH; 1006 1190 inst->_operation = instruction_information(INSTRUCTION_L_JR)._operation; //OPERATION_BRANCH_L_JALR; … … 1031 1215 log_printf(TRACE,Decod,"instruction_l_lbs"," * instruction : l.lbs"); 1032 1216 1217 #ifdef STATISTICS 1218 inst->_opcod = INSTRUCTION_L_LBS; 1219 #endif 1033 1220 inst->_type = instruction_information(INSTRUCTION_L_LBS)._type ; //TYPE_MEMORY; 1034 1221 inst->_operation = instruction_information(INSTRUCTION_L_LBS)._operation; //OPERATION_MEMORY_LOAD_8_S; … … 1059 1246 log_printf(TRACE,Decod,"instruction_l_lbz"," * instruction : l.lbz"); 1060 1247 1248 #ifdef STATISTICS 1249 inst->_opcod = INSTRUCTION_L_LBZ; 1250 #endif 1061 1251 inst->_type = instruction_information(INSTRUCTION_L_LBZ)._type ; //TYPE_MEMORY; 1062 1252 inst->_operation = instruction_information(INSTRUCTION_L_LBZ)._operation; //OPERATION_MEMORY_LOAD_8_Z; … … 1087 1277 log_printf(TRACE,Decod,"instruction_l_ld"," * instruction : l.ld"); 1088 1278 1279 #ifdef STATISTICS 1280 inst->_opcod = INSTRUCTION_L_LD; 1281 #endif 1089 1282 inst->_type = instruction_information(INSTRUCTION_L_LD)._type ; //TYPE_MEMORY; 1090 1283 inst->_operation = instruction_information(INSTRUCTION_L_LD)._operation; //OPERATION_MEMORY_LOAD_64_S; … … 1115 1308 log_printf(TRACE,Decod,"instruction_l_lhs"," * instruction : l.lhs"); 1116 1309 1310 #ifdef STATISTICS 1311 inst->_opcod = INSTRUCTION_L_LHS; 1312 #endif 1117 1313 inst->_type = instruction_information(INSTRUCTION_L_LHS)._type ; //TYPE_MEMORY; 1118 1314 inst->_operation = instruction_information(INSTRUCTION_L_LHS)._operation; //OPERATION_MEMORY_LOAD_16_S; … … 1143 1339 log_printf(TRACE,Decod,"instruction_l_lhz"," * instruction : l.lhz"); 1144 1340 1341 #ifdef STATISTICS 1342 inst->_opcod = INSTRUCTION_L_LHZ; 1343 #endif 1145 1344 inst->_type = instruction_information(INSTRUCTION_L_LHZ)._type ; //TYPE_MEMORY; 1146 1345 inst->_operation = instruction_information(INSTRUCTION_L_LHZ)._operation; //OPERATION_MEMORY_LOAD_16_Z; … … 1171 1370 log_printf(TRACE,Decod,"instruction_l_lws"," * instruction : l.lws"); 1172 1371 1372 #ifdef STATISTICS 1373 inst->_opcod = INSTRUCTION_L_LWS; 1374 #endif 1173 1375 inst->_type = instruction_information(INSTRUCTION_L_LWS)._type ; //TYPE_MEMORY; 1174 1376 inst->_operation = instruction_information(INSTRUCTION_L_LWS)._operation; //OPERATION_MEMORY_LOAD_32_S; … … 1199 1401 log_printf(TRACE,Decod,"instruction_l_lwz"," * instruction : l.lwz"); 1200 1402 1403 #ifdef STATISTICS 1404 inst->_opcod = INSTRUCTION_L_LWZ; 1405 #endif 1201 1406 inst->_type = instruction_information(INSTRUCTION_L_LWZ)._type ; //TYPE_MEMORY; 1202 1407 inst->_operation = instruction_information(INSTRUCTION_L_LWZ)._operation; //OPERATION_MEMORY_LOAD_32_Z; … … 1227 1432 log_printf(TRACE,Decod,"instruction_l_mac"," * instruction : l.mac"); 1228 1433 1434 #ifdef STATISTICS 1435 inst->_opcod = INSTRUCTION_L_MAC; 1436 #endif 1229 1437 inst->_type = instruction_information(INSTRUCTION_L_MAC)._type ; //TYPE_SPECIAL; 1230 1438 inst->_operation = instruction_information(INSTRUCTION_L_MAC)._operation; //OPERATION_SPECIAL_L_MAC; … … 1255 1463 log_printf(TRACE,Decod,"instruction_l_maci"," * instruction : l.maci"); 1256 1464 1465 #ifdef STATISTICS 1466 inst->_opcod = INSTRUCTION_L_MACI; 1467 #endif 1257 1468 inst->_type = instruction_information(INSTRUCTION_L_MACI)._type ; //TYPE_SPECIAL; 1258 1469 inst->_operation = instruction_information(INSTRUCTION_L_MACI)._operation; //OPERATION_SPECIAL_L_MAC; … … 1290 1501 else 1291 1502 { 1503 #ifdef STATISTICS 1504 inst->_opcod = INSTRUCTION_L_MACRC; 1505 #endif 1292 1506 inst->_type = instruction_information(INSTRUCTION_L_MACRC)._type ; //TYPE_SPECIAL; 1293 1507 inst->_operation = instruction_information(INSTRUCTION_L_MACRC)._operation; //OPERATION_SPECIAL_L_MACRC; … … 1319 1533 log_printf(TRACE,Decod,"instruction_l_mfspr"," * instruction : l.mfspr"); 1320 1534 1535 #ifdef STATISTICS 1536 inst->_opcod = INSTRUCTION_L_MFSPR; 1537 #endif 1321 1538 inst->_type = instruction_information(INSTRUCTION_L_MFSPR)._type ; //TYPE_SPECIAL; 1322 1539 inst->_operation = instruction_information(INSTRUCTION_L_MFSPR)._operation; //OPERATION_SPECIAL_L_MFSPR; … … 1347 1564 log_printf(TRACE,Decod,"instruction_l_movhi"," * instruction : l.movhi"); 1348 1565 1566 #ifdef STATISTICS 1567 inst->_opcod = INSTRUCTION_L_MOVHI; 1568 #endif 1349 1569 inst->_type = instruction_information(INSTRUCTION_L_MOVHI)._type ; //TYPE_MOVE; 1350 1570 inst->_operation = instruction_information(INSTRUCTION_L_MOVHI)._operation; //OPERATION_MOVE_L_MOVHI; … … 1375 1595 log_printf(TRACE,Decod,"instruction_l_msb"," * instruction : l.msb"); 1376 1596 1597 #ifdef STATISTICS 1598 inst->_opcod = INSTRUCTION_L_MSB; 1599 #endif 1377 1600 inst->_type = instruction_information(INSTRUCTION_L_MSB)._type ; //TYPE_SPECIAL; 1378 1601 inst->_operation = instruction_information(INSTRUCTION_L_MSB)._operation; //OPERATION_SPECIAL_L_MSB; … … 1409 1632 else 1410 1633 { 1634 #ifdef STATISTICS 1635 inst->_opcod = INSTRUCTION_L_MSYNC; 1636 #endif 1411 1637 inst->_type = instruction_information(INSTRUCTION_L_MSYNC)._type ; //TYPE_SPECIAL; 1412 1638 inst->_operation = instruction_information(INSTRUCTION_L_MSYNC)._operation; //OPERATION_SPECIAL_L_MSYNC; … … 1438 1664 log_printf(TRACE,Decod,"instruction_l_mtspr"," * instruction : l.mtspr"); 1439 1665 1666 #ifdef STATISTICS 1667 inst->_opcod = INSTRUCTION_L_MTSPR; 1668 #endif 1440 1669 inst->_type = instruction_information(INSTRUCTION_L_MTSPR)._type ; //TYPE_SPECIAL; 1441 1670 inst->_operation = instruction_information(INSTRUCTION_L_MTSPR)._operation; //OPERATION_SPECIAL_L_MTSPR; … … 1467 1696 log_printf(TRACE,Decod,"instruction_l_mul"," * instruction : l.mul"); 1468 1697 1698 #ifdef STATISTICS 1699 inst->_opcod = INSTRUCTION_L_MUL; 1700 #endif 1469 1701 inst->_type = instruction_information(INSTRUCTION_L_MUL)._type ; //TYPE_MUL; 1470 1702 inst->_operation = instruction_information(INSTRUCTION_L_MUL)._operation; //OPERATION_MUL_L_MUL; … … 1495 1727 log_printf(TRACE,Decod,"instruction_l_muli"," * instruction : l.muli"); 1496 1728 1729 #ifdef STATISTICS 1730 inst->_opcod = INSTRUCTION_L_MULI; 1731 #endif 1497 1732 inst->_type = instruction_information(INSTRUCTION_L_MULI)._type ; //TYPE_MUL; 1498 1733 inst->_operation = instruction_information(INSTRUCTION_L_MULI)._operation; //OPERATION_MUL_L_MUL; … … 1523 1758 log_printf(TRACE,Decod,"instruction_l_mulu"," * instruction : l.mulu"); 1524 1759 1760 #ifdef STATISTICS 1761 inst->_opcod = INSTRUCTION_L_MULU; 1762 #endif 1525 1763 inst->_type = instruction_information(INSTRUCTION_L_MULU)._type ; //TYPE_MUL; 1526 1764 inst->_operation = instruction_information(INSTRUCTION_L_MULU)._operation; //OPERATION_MUL_L_MULU; … … 1551 1789 log_printf(TRACE,Decod,"instruction_l_nop"," * instruction : l.nop"); 1552 1790 1791 #ifdef STATISTICS 1792 inst->_opcod = INSTRUCTION_L_NOP; 1793 #endif 1553 1794 inst->_type = instruction_information(INSTRUCTION_L_NOP)._type ; //TYPE_SPECIAL; 1554 1795 inst->_operation = instruction_information(INSTRUCTION_L_NOP)._operation; //OPERATION_SPECIAL_L_NOP; … … 1581 1822 log_printf(TRACE,Decod,"instruction_l_or"," * instruction : l.or"); 1582 1823 1824 #ifdef STATISTICS 1825 inst->_opcod = INSTRUCTION_L_OR; 1826 #endif 1583 1827 inst->_type = instruction_information(INSTRUCTION_L_OR)._type ; //TYPE_ALU; 1584 1828 inst->_operation = instruction_information(INSTRUCTION_L_OR)._operation; //OPERATION_ALU_L_OR; … … 1609 1853 log_printf(TRACE,Decod,"instruction_l_ori"," * instruction : l.ori"); 1610 1854 1855 #ifdef STATISTICS 1856 inst->_opcod = INSTRUCTION_L_ORI; 1857 #endif 1611 1858 inst->_type = instruction_information(INSTRUCTION_L_ORI)._type ; //TYPE_ALU; 1612 1859 inst->_operation = instruction_information(INSTRUCTION_L_ORI)._operation; //OPERATION_ALU_L_OR; … … 1643 1890 else 1644 1891 { 1892 #ifdef STATISTICS 1893 inst->_opcod = INSTRUCTION_L_PSYNC; 1894 #endif 1645 1895 inst->_type = instruction_information(INSTRUCTION_L_PSYNC)._type ; //TYPE_SPECIAL; 1646 1896 inst->_operation = instruction_information(INSTRUCTION_L_PSYNC)._operation; //OPERATION_SPECIAL_L_PSYNC; … … 1672 1922 log_printf(TRACE,Decod,"instruction_l_rfe"," * instruction : l.rfe"); 1673 1923 1924 #ifdef STATISTICS 1925 inst->_opcod = INSTRUCTION_L_RFE; 1926 #endif 1674 1927 inst->_type = instruction_information(INSTRUCTION_L_RFE)._type ; //TYPE_SPECIAL; 1675 1928 inst->_operation = instruction_information(INSTRUCTION_L_RFE)._operation; //OPERATION_SPECIAL_L_RFE; … … 1700 1953 log_printf(TRACE,Decod,"instruction_l_ror"," * instruction : l.ror"); 1701 1954 1955 #ifdef STATISTICS 1956 inst->_opcod = INSTRUCTION_L_ROR; 1957 #endif 1702 1958 inst->_type = instruction_information(INSTRUCTION_L_ROR)._type ; //TYPE_SHIFT; 1703 1959 inst->_operation = instruction_information(INSTRUCTION_L_ROR)._operation; //OPERATION_SHIFT_L_ROR; … … 1728 1984 log_printf(TRACE,Decod,"instruction_l_rori"," * instruction : l.rori"); 1729 1985 1986 #ifdef STATISTICS 1987 inst->_opcod = INSTRUCTION_L_RORI; 1988 #endif 1730 1989 inst->_type = instruction_information(INSTRUCTION_L_RORI)._type ; //TYPE_SHIFT; 1731 1990 inst->_operation = instruction_information(INSTRUCTION_L_RORI)._operation; //OPERATION_SHIFT_L_ROR; … … 1756 2015 log_printf(TRACE,Decod,"instruction_l_sb"," * instruction : l.sb"); 1757 2016 2017 #ifdef STATISTICS 2018 inst->_opcod = INSTRUCTION_L_SB; 2019 #endif 1758 2020 inst->_type = instruction_information(INSTRUCTION_L_SB)._type ; //TYPE_MEMORY; 1759 2021 inst->_operation = instruction_information(INSTRUCTION_L_SB)._operation; //OPERATION_MEMORY_STORE_8; … … 1785 2047 log_printf(TRACE,Decod,"instruction_l_sb"," * instruction : l.sb"); 1786 2048 2049 #ifdef STATISTICS 2050 inst->_opcod = INSTRUCTION_L_SD; 2051 #endif 1787 2052 inst->_type = instruction_information(INSTRUCTION_L_SD)._type ; //TYPE_MEMORY; 1788 2053 inst->_operation = instruction_information(INSTRUCTION_L_SD)._operation; //OPERATION_MEMORY_STORE_64; … … 1814 2079 log_printf(TRACE,Decod,"instruction_l_sfeq"," * instruction : l.sfeq"); 1815 2080 2081 #ifdef STATISTICS 2082 inst->_opcod = INSTRUCTION_L_SFEQ; 2083 #endif 1816 2084 inst->_type = instruction_information(INSTRUCTION_L_SFEQ)._type ; //TYPE_TEST; 1817 2085 inst->_operation = instruction_information(INSTRUCTION_L_SFEQ)._operation; //OPERATION_TEST_L_SFEQ; … … 1842 2110 log_printf(TRACE,Decod,"instruction_l_sfeqi"," * instruction : l.sfeqi"); 1843 2111 2112 #ifdef STATISTICS 2113 inst->_opcod = INSTRUCTION_L_SFEQI; 2114 #endif 1844 2115 inst->_type = instruction_information(INSTRUCTION_L_SFEQI)._type ; //TYPE_TEST; 1845 2116 inst->_operation = instruction_information(INSTRUCTION_L_SFEQI)._operation; //OPERATION_TEST_L_SFEQ; … … 1870 2141 log_printf(TRACE,Decod,"instruction_l_sfges"," * instruction : l.sfges"); 1871 2142 2143 #ifdef STATISTICS 2144 inst->_opcod = INSTRUCTION_L_SFGES; 2145 #endif 1872 2146 inst->_type = instruction_information(INSTRUCTION_L_SFGES)._type ; //TYPE_TEST; 1873 2147 inst->_operation = instruction_information(INSTRUCTION_L_SFGES)._operation; //OPERATION_TEST_L_SFGES; … … 1898 2172 log_printf(TRACE,Decod,"instruction_l_sfgesi"," * instruction : l.sfgesi"); 1899 2173 2174 #ifdef STATISTICS 2175 inst->_opcod = INSTRUCTION_L_SFGESI; 2176 #endif 1900 2177 inst->_type = instruction_information(INSTRUCTION_L_SFGESI)._type ; //TYPE_TEST; 1901 2178 inst->_operation = instruction_information(INSTRUCTION_L_SFGESI)._operation; //OPERATION_TEST_L_SFGES; … … 1926 2203 log_printf(TRACE,Decod,"instruction_l_sfgeu"," * instruction : l.sfgeu"); 1927 2204 2205 #ifdef STATISTICS 2206 inst->_opcod = INSTRUCTION_L_SFGEU; 2207 #endif 1928 2208 inst->_type = instruction_information(INSTRUCTION_L_SFGEU)._type ; //TYPE_TEST; 1929 2209 inst->_operation = instruction_information(INSTRUCTION_L_SFGEU)._operation; //OPERATION_TEST_L_SFGEU; … … 1954 2234 log_printf(TRACE,Decod,"instruction_l_sfgeui"," * instruction : l.sfgeui"); 1955 2235 2236 #ifdef STATISTICS 2237 inst->_opcod = INSTRUCTION_L_SFGEUI; 2238 #endif 1956 2239 inst->_type = instruction_information(INSTRUCTION_L_SFGEUI)._type ; //TYPE_TEST; 1957 2240 inst->_operation = instruction_information(INSTRUCTION_L_SFGEUI)._operation; //OPERATION_TEST_L_SFGEU; … … 1982 2265 log_printf(TRACE,Decod,"instruction_l_sfgts"," * instruction : l.sfgts"); 1983 2266 2267 #ifdef STATISTICS 2268 inst->_opcod = INSTRUCTION_L_SFGTS; 2269 #endif 1984 2270 inst->_type = instruction_information(INSTRUCTION_L_SFGTS)._type ; //TYPE_TEST; 1985 2271 inst->_operation = instruction_information(INSTRUCTION_L_SFGTS)._operation; //OPERATION_TEST_L_SFGTS; … … 2010 2296 log_printf(TRACE,Decod,"instruction_l_sfgtsi"," * instruction : l.sfgtsi"); 2011 2297 2298 #ifdef STATISTICS 2299 inst->_opcod = INSTRUCTION_L_SFGTSI; 2300 #endif 2012 2301 inst->_type = instruction_information(INSTRUCTION_L_SFGTSI)._type ; //TYPE_TEST; 2013 2302 inst->_operation = instruction_information(INSTRUCTION_L_SFGTSI)._operation; //OPERATION_TEST_L_SFGTS; … … 2038 2327 log_printf(TRACE,Decod,"instruction_l_sfgtu"," * instruction : l.sfgtu"); 2039 2328 2329 #ifdef STATISTICS 2330 inst->_opcod = INSTRUCTION_L_SFGTU; 2331 #endif 2040 2332 inst->_type = instruction_information(INSTRUCTION_L_SFGTU)._type ; //TYPE_TEST; 2041 2333 inst->_operation = instruction_information(INSTRUCTION_L_SFGTU)._operation; //OPERATION_TEST_L_SFGTU; … … 2066 2358 log_printf(TRACE,Decod,"instruction_l_sfgtui"," * instruction : l.sfgtui"); 2067 2359 2360 #ifdef STATISTICS 2361 inst->_opcod = INSTRUCTION_L_SFGTUI; 2362 #endif 2068 2363 inst->_type = instruction_information(INSTRUCTION_L_SFGTUI)._type ; //TYPE_TEST; 2069 2364 inst->_operation = instruction_information(INSTRUCTION_L_SFGTUI)._operation; //OPERATION_TEST_L_SFGTU; … … 2094 2389 log_printf(TRACE,Decod,"instruction_l_sfles"," * instruction : l.sfles"); 2095 2390 2391 #ifdef STATISTICS 2392 inst->_opcod = INSTRUCTION_L_SFLES; 2393 #endif 2096 2394 inst->_type = instruction_information(INSTRUCTION_L_SFLES)._type ; //TYPE_TEST; 2097 2395 inst->_operation = instruction_information(INSTRUCTION_L_SFLES)._operation; //OPERATION_TEST_L_SFLES; … … 2122 2420 log_printf(TRACE,Decod,"instruction_l_sflesi"," * instruction : l.sflesi"); 2123 2421 2422 #ifdef STATISTICS 2423 inst->_opcod = INSTRUCTION_L_SFLESI; 2424 #endif 2124 2425 inst->_type = instruction_information(INSTRUCTION_L_SFLESI)._type ; //TYPE_TEST; 2125 2426 inst->_operation = instruction_information(INSTRUCTION_L_SFLESI)._operation; //OPERATION_TEST_L_SFLES; … … 2150 2451 log_printf(TRACE,Decod,"instruction_l_sfleu"," * instruction : l.sfleu"); 2151 2452 2453 #ifdef STATISTICS 2454 inst->_opcod = INSTRUCTION_L_SFLEU; 2455 #endif 2152 2456 inst->_type = instruction_information(INSTRUCTION_L_SFLEU)._type ; //TYPE_TEST; 2153 2457 inst->_operation = instruction_information(INSTRUCTION_L_SFLEU)._operation; //OPERATION_TEST_L_SFLEU; … … 2178 2482 log_printf(TRACE,Decod,"instruction_l_sfleui"," * instruction : l.sfleui"); 2179 2483 2484 #ifdef STATISTICS 2485 inst->_opcod = INSTRUCTION_L_SFLEUI; 2486 #endif 2180 2487 inst->_type = instruction_information(INSTRUCTION_L_SFLEUI)._type ; //TYPE_TEST; 2181 2488 inst->_operation = instruction_information(INSTRUCTION_L_SFLEUI)._operation; //OPERATION_TEST_L_SFLEU; … … 2206 2513 log_printf(TRACE,Decod,"instruction_l_sflts"," * instruction : l.sflts"); 2207 2514 2515 #ifdef STATISTICS 2516 inst->_opcod = INSTRUCTION_L_SFLTS; 2517 #endif 2208 2518 inst->_type = instruction_information(INSTRUCTION_L_SFLTS)._type ; //TYPE_TEST; 2209 2519 inst->_operation = instruction_information(INSTRUCTION_L_SFLTS)._operation; //OPERATION_TEST_L_SFLTS; … … 2234 2544 log_printf(TRACE,Decod,"instruction_l_sfltsi"," * instruction : l.sfltsi"); 2235 2545 2546 #ifdef STATISTICS 2547 inst->_opcod = INSTRUCTION_L_SFLTSI; 2548 #endif 2236 2549 inst->_type = instruction_information(INSTRUCTION_L_SFLTSI)._type ; //TYPE_TEST; 2237 2550 inst->_operation = instruction_information(INSTRUCTION_L_SFLTSI)._operation; //OPERATION_TEST_L_SFLTS; … … 2262 2575 log_printf(TRACE,Decod,"instruction_l_sfltu"," * instruction : l.sfltu"); 2263 2576 2577 #ifdef STATISTICS 2578 inst->_opcod = INSTRUCTION_L_SFLTU; 2579 #endif 2264 2580 inst->_type = instruction_information(INSTRUCTION_L_SFLTU)._type ; //TYPE_TEST; 2265 2581 inst->_operation = instruction_information(INSTRUCTION_L_SFLTU)._operation; //OPERATION_TEST_L_SFLTU; … … 2290 2606 log_printf(TRACE,Decod,"instruction_l_sfltui"," * instruction : l.sfltui"); 2291 2607 2608 #ifdef STATISTICS 2609 inst->_opcod = INSTRUCTION_L_SFLTUI; 2610 #endif 2292 2611 inst->_type = instruction_information(INSTRUCTION_L_SFLTUI)._type ; //TYPE_TEST; 2293 2612 inst->_operation = instruction_information(INSTRUCTION_L_SFLTUI)._operation; //OPERATION_TEST_L_SFLTU; … … 2318 2637 log_printf(TRACE,Decod,"instruction_l_sfne"," * instruction : l.sfne"); 2319 2638 2639 #ifdef STATISTICS 2640 inst->_opcod = INSTRUCTION_L_SFNE; 2641 #endif 2320 2642 inst->_type = instruction_information(INSTRUCTION_L_SFNE)._type ; //TYPE_TEST; 2321 2643 inst->_operation = instruction_information(INSTRUCTION_L_SFNE)._operation; //OPERATION_TEST_L_SFNE; … … 2346 2668 log_printf(TRACE,Decod,"instruction_l_sfnei"," * instruction : l.sfnei"); 2347 2669 2670 #ifdef STATISTICS 2671 inst->_opcod = INSTRUCTION_L_SFNEI; 2672 #endif 2348 2673 inst->_type = instruction_information(INSTRUCTION_L_SFNEI)._type ; //TYPE_TEST; 2349 2674 inst->_operation = instruction_information(INSTRUCTION_L_SFNEI)._operation; //OPERATION_TEST_L_SFNE; … … 2374 2699 log_printf(TRACE,Decod,"instruction_l_sh"," * instruction : l.sh"); 2375 2700 2701 #ifdef STATISTICS 2702 inst->_opcod = INSTRUCTION_L_SH; 2703 #endif 2376 2704 inst->_type = instruction_information(INSTRUCTION_L_SH)._type ; //TYPE_MEMORY; 2377 2705 inst->_operation = instruction_information(INSTRUCTION_L_SH)._operation; //OPERATION_MEMORY_STORE_16; … … 2403 2731 log_printf(TRACE,Decod,"instruction_l_sll"," * instruction : l.sll"); 2404 2732 2733 #ifdef STATISTICS 2734 inst->_opcod = INSTRUCTION_L_SLL; 2735 #endif 2405 2736 inst->_type = instruction_information(INSTRUCTION_L_SLL)._type ; //TYPE_SHIFT; 2406 2737 inst->_operation = instruction_information(INSTRUCTION_L_SLL)._operation; //OPERATION_SHIFT_L_SLL; … … 2431 2762 log_printf(TRACE,Decod,"instruction_l_slli"," * instruction : l.slli"); 2432 2763 2764 #ifdef STATISTICS 2765 inst->_opcod = INSTRUCTION_L_SLLI; 2766 #endif 2433 2767 inst->_type = instruction_information(INSTRUCTION_L_SLLI)._type ; //TYPE_SHIFT; 2434 2768 inst->_operation = instruction_information(INSTRUCTION_L_SLLI)._operation; //OPERATION_SHIFT_L_SLL; … … 2459 2793 log_printf(TRACE,Decod,"instruction_l_sra"," * instruction : l.sra"); 2460 2794 2795 #ifdef STATISTICS 2796 inst->_opcod = INSTRUCTION_L_SRA; 2797 #endif 2461 2798 inst->_type = instruction_information(INSTRUCTION_L_SRA)._type ; //TYPE_SHIFT; 2462 2799 inst->_operation = instruction_information(INSTRUCTION_L_SRA)._operation; //OPERATION_SHIFT_L_SRA; … … 2487 2824 log_printf(TRACE,Decod,"instruction_l_srai"," * instruction : l.srai"); 2488 2825 2826 #ifdef STATISTICS 2827 inst->_opcod = INSTRUCTION_L_SRAI; 2828 #endif 2489 2829 inst->_type = instruction_information(INSTRUCTION_L_SRAI)._type ; //TYPE_SHIFT; 2490 2830 inst->_operation = instruction_information(INSTRUCTION_L_SRAI)._operation; //OPERATION_SHIFT_L_SRA; … … 2515 2855 log_printf(TRACE,Decod,"instruction_l_srl"," * instruction : l.srl"); 2516 2856 2857 #ifdef STATISTICS 2858 inst->_opcod = INSTRUCTION_L_SRL; 2859 #endif 2517 2860 inst->_type = instruction_information(INSTRUCTION_L_SRL)._type ; //TYPE_SHIFT; 2518 2861 inst->_operation = instruction_information(INSTRUCTION_L_SRL)._operation; //OPERATION_SHIFT_L_SRL; … … 2543 2886 log_printf(TRACE,Decod,"instruction_l_srli"," * instruction : l.srli"); 2544 2887 2888 #ifdef STATISTICS 2889 inst->_opcod = INSTRUCTION_L_SRLI; 2890 #endif 2545 2891 inst->_type = instruction_information(INSTRUCTION_L_SRLI)._type ; //TYPE_SHIFT; 2546 2892 inst->_operation = instruction_information(INSTRUCTION_L_SRLI)._operation; //OPERATION_SHIFT_L_SRL; … … 2571 2917 log_printf(TRACE,Decod,"instruction_l_sub"," * instruction : l.sub"); 2572 2918 2919 #ifdef STATISTICS 2920 inst->_opcod = INSTRUCTION_L_SUB; 2921 #endif 2573 2922 inst->_type = instruction_information(INSTRUCTION_L_SUB)._type ; //TYPE_ALU; 2574 2923 inst->_operation = instruction_information(INSTRUCTION_L_SUB)._operation; //OPERATION_ALU_L_SUB; … … 2599 2948 log_printf(TRACE,Decod,"instruction_l_sw"," * instruction : l.sw"); 2600 2949 2950 #ifdef STATISTICS 2951 inst->_opcod = INSTRUCTION_L_SW; 2952 #endif 2601 2953 inst->_type = instruction_information(INSTRUCTION_L_SW)._type ; //TYPE_MEMORY; 2602 2954 inst->_operation = instruction_information(INSTRUCTION_L_SW)._operation; //OPERATION_MEMORY_STORE_32; … … 2634 2986 else 2635 2987 { 2988 #ifdef STATISTICS 2989 inst->_opcod = INSTRUCTION_L_SYS; 2990 #endif 2636 2991 inst->_type = instruction_information(INSTRUCTION_L_SYS)._type ; //TYPE_SPECIAL; 2637 2992 inst->_operation = instruction_information(INSTRUCTION_L_SYS)._operation; //OPERATION_SPECIAL_L_SYS; … … 2678 3033 else 2679 3034 { 3035 #ifdef STATISTICS 3036 inst->_opcod = INSTRUCTION_L_TRAP; 3037 #endif 2680 3038 inst->_type = instruction_information(INSTRUCTION_L_TRAP)._type ; //TYPE_SPECIAL; 2681 3039 inst->_operation = instruction_information(INSTRUCTION_L_TRAP)._operation; //OPERATION_SPECIAL_L_TRAP; … … 2707 3065 log_printf(TRACE,Decod,"instruction_l_xor"," * instruction : l.xor"); 2708 3066 3067 #ifdef STATISTICS 3068 inst->_opcod = INSTRUCTION_L_XOR; 3069 #endif 2709 3070 inst->_type = instruction_information(INSTRUCTION_L_XOR)._type ; //TYPE_ALU; 2710 3071 inst->_operation = instruction_information(INSTRUCTION_L_XOR)._operation; //OPERATION_ALU_L_XOR; … … 2735 3096 log_printf(TRACE,Decod,"instruction_l_xori"," * instruction : l.xori"); 2736 3097 3098 #ifdef STATISTICS 3099 inst->_opcod = INSTRUCTION_L_XORI; 3100 #endif 2737 3101 inst->_type = instruction_information(INSTRUCTION_L_XORI)._type ; //TYPE_ALU; 2738 3102 inst->_operation = instruction_information(INSTRUCTION_L_XORI)._operation; //OPERATION_ALU_L_XOR; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include/Decod.h
r136 r137 84 84 public : SC_OUT(Tcontext_t ) ** out_DECOD_CONTEXT_ID ;//[nb_inst_decod] 85 85 public : SC_OUT(Tdepth_t ) ** out_DECOD_DEPTH ;//[nb_inst_decod] 86 #ifdef STATISTICS 87 public : SC_OUT(uint32_t ) ** out_DECOD_INSTRUCTION ;//[nb_inst_decod] 88 #endif 86 89 public : SC_OUT(Ttype_t ) ** out_DECOD_TYPE ;//[nb_inst_decod] 87 90 public : SC_OUT(Toperation_t ) ** out_DECOD_OPERATION ;//[nb_inst_decod] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp
r136 r137 83 83 ALLOC1_SIGNAL_OUT(out_DECOD_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 84 84 ALLOC1_SIGNAL_OUT(out_DECOD_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 85 #ifdef STATISTICS 86 ALLOC1_SIGNAL_OUT(out_DECOD_INSTRUCTION ,"instruction" ,uint32_t ,32 ); 87 #endif 85 88 ALLOC1_SIGNAL_OUT(out_DECOD_TYPE ,"type" ,Ttype_t ,_param->_size_type ); 86 89 ALLOC1_SIGNAL_OUT(out_DECOD_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp
r136 r137 44 44 DELETE1_SIGNAL(out_DECOD_CONTEXT_ID ,_param->_nb_inst_decod,_param->_size_context_id ); 45 45 DELETE1_SIGNAL(out_DECOD_DEPTH ,_param->_nb_inst_decod,_param->_size_depth ); 46 #ifdef STATISTICS 47 DELETE1_SIGNAL(out_DECOD_INSTRUCTION ,_param->_nb_inst_decod,32 ); 48 #endif 46 49 DELETE1_SIGNAL(out_DECOD_TYPE ,_param->_nb_inst_decod,_param->_size_type ); 47 50 DELETE1_SIGNAL(out_DECOD_OPERATION ,_param->_nb_inst_decod,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_genMealy.cpp
r136 r137 107 107 _decod_instruction->_address_next = addr+1; 108 108 _decod_instruction->_is_delay_slot = internal_CONTEXT_IS_DELAY_SLOT [x]; 109 #ifdef STATISTICS 110 _decod_instruction->_opcod = -1; // not necessary 111 #endif 109 112 _decod_instruction->_type = 0; // not necessary 110 113 _decod_instruction->_operation = 0; // not necessary … … 174 177 if (_param->_have_port_depth) 175 178 PORT_WRITE(out_DECOD_DEPTH [i], depth); 179 #ifdef STATISTICS 180 PORT_WRITE(out_DECOD_INSTRUCTION [i], _decod_instruction->_opcod ); 181 #endif 176 182 PORT_WRITE(out_DECOD_TYPE [i], type); 177 183 PORT_WRITE(out_DECOD_OPERATION [i], _decod_instruction->_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_vhdl_body.cpp
r135 r137 36 36 37 37 for(uint32_t i = 0;i < _param->_nb_inst_decod;i++){ 38 vhdl->set_body(0,"internal_DECOD_INSTRUCTION_"+toString(i)+" <= in_IFETCH_0_"+toString(i)+"_INSTRUCTION WHEN in_IFETCH_0_ EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(6,OPCOD_10)+" & "+std_logic_cst(2,OPCOD_L_NOP)+" & X\"000000\" ;");38 vhdl->set_body(0,"internal_DECOD_INSTRUCTION_"+toString(i)+" <= in_IFETCH_0_"+toString(i)+"_INSTRUCTION WHEN in_IFETCH_0_"+toString(i)+"_EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(6,OPCOD_10)+" & "+std_logic_cst(2,OPCOD_L_NOP)+" & X\"000000\" ;"); 39 39 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_VAL <= internal_DECOD_"+toString(i)+"_VAL; "); 40 40 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_TYPE <= internal_DECOD_INSTRUCTION_"+toString(i)+"_TYPE; "); … … 53 53 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_NUM_REG_RE <= internal_DECOD_INSTRUCTION_"+toString(i)+"_NUM_REG_RE; "); 54 54 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_EXCEPTION_USE <= internal_DECOD_INSTRUCTION_"+toString(i)+"_EXCEPTION_USE; "); 55 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_EXCEPTION <= internal_DECOD_INSTRUCTION_"+toString(i)+"_EXCEPTION WHEN in_IFETCH_0_ EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(_param->_size_exception_decod,EXCEPTION_DECOD_NONE)+"; ");55 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_EXCEPTION <= internal_DECOD_INSTRUCTION_"+toString(i)+"_EXCEPTION WHEN in_IFETCH_0_"+toString(i)+"_EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(_param->_size_exception_decod,EXCEPTION_DECOD_NONE)+"; "); 56 56 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_NO_EXECUTE <= internal_DECOD_INSTRUCTION_"+toString(i)+"_NO_EXECUTE; "); 57 57 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_IS_DELAY_SLOT <= internal_DECOD_INSTRUCTION_"+toString(i)+"_IS_DELAY_SLOT; "); … … 59 59 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_ADDRESS <= internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS; "); 60 60 #endif 61 vhdl->set_body(0,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS <= in_IFETCH_0_ ADDRESS + "+std_logic_cst(_param->_size_instruction_address,i)+" ;");61 vhdl->set_body(0,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS <= in_IFETCH_0_"+toString(i)+"_ADDRESS + "+std_logic_cst(_param->_size_instruction_address,i)+" ;"); 62 62 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_ADDRESS_NEXT <= internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT; "); 63 vhdl->set_body(0,"internal_DECOD_IN_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_ "+toString(i)+"_ADDRESS + '1'; ");63 vhdl->set_body(0,"internal_DECOD_IN_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + '1'; "); 64 64 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_CONDITION <= internal_DECOD_INSTRUCTION_"+toString(i)+"_BRANCH_CONDITION; "); 65 65 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_DIRECTION <= internal_DECOD_INSTRUCTION_"+toString(i)+"_BRANCH_DIRECTION; "); 66 66 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_ADDRESS_SRC <= internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS; "); 67 67 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_ADDRESS_DEST <= internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT; "); 68 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_STATE <= in_IFETCH_0_ BRANCH_STATE; ");68 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_STATE <= in_IFETCH_0_"+toString(i)+"_BRANCH_STATE; "); 69 69 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_VAL <= internal_PREDICT_"+toString(i)+"_VAL; "); 70 70 71 if(_param->_have_port_depth) vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_UPDATE_PREDICTION_ID <= in_IFETCH_0_ BRANCH_UPDATE_PREDICTION_ID; ");72 if(_param->_have_port_inst_ifetch_ptr) vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_MATCH_INST_IFETCH_PTR <= '1' WHEN in_IFETCH_0_ INST_IFETCH_PTR = "+std_logic_cst(_param->_size_inst_ifetch_ptr,i)+" ELSE '0'; ");71 if(_param->_have_port_depth) vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_UPDATE_PREDICTION_ID <= in_IFETCH_0_"+toString(i)+"_BRANCH_UPDATE_PREDICTION_ID; "); 72 if(_param->_have_port_inst_ifetch_ptr) vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_MATCH_INST_IFETCH_PTR <= '1' WHEN in_IFETCH_0_"+toString(i)+"_INST_IFETCH_PTR = "+std_logic_cst(_param->_size_inst_ifetch_ptr,i)+" ELSE '0'; "); 73 73 else vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_MATCH_INST_IFETCH_PTR <= '1' WHEN internal_DECOD_INSTRUCTION_0_TYPE = "+std_logic_cst(_param->_size_type,TYPE_BRANCH)+" ELSE '0' ; "); 74 74 } … … 88 88 89 89 vhdl->set_body(0,"out_CONTEXT_EVENT_VAL <= internal_CONTEXT_EVENT_VAL; "); 90 vhdl->set_body(0,"out_CONTEXT_EVENT_TYPE <= internal_DECOD_INSTRUCTION_0_EVENT_TYPE WHEN in_IFETCH_0_ EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_EXCEPTION)+"; ");90 vhdl->set_body(0,"out_CONTEXT_EVENT_TYPE <= internal_DECOD_INSTRUCTION_0_EVENT_TYPE WHEN in_IFETCH_0_0_EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_EXCEPTION)+"; "); 91 91 vhdl->set_body(0,"out_CONTEXT_EVENT_ADDRESS <= internal_DECOD_INSTRUCTION_0_ADDRESS; "); 92 92 vhdl->set_body(0,"out_CONTEXT_EVENT_ADDRESS_EPCR <= internal_DECOD_INSTRUCTION_0_ADDRESS_NEXT; "); … … 226 226 extend_signal = ""; 227 227 for(uint32_t cp = 0;cp < _param->_size_instruction_address - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & "; 228 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_ "+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");228 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); "); 229 229 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_EVENT_TYPE <= "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_NONE)+"; "); 230 230 … … 252 252 extend_signal = ""; 253 253 for(uint32_t cp = 0;cp < _param->_size_instruction_address - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & "; 254 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_ "+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");254 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); "); 255 255 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_EVENT_TYPE <= "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_NONE)+"; "); 256 256 … … 266 266 extend_signal = ""; 267 267 for(uint32_t cp = 0;cp < _param->_size_general_data - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & "; 268 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_IMMEDIAT <= \"00\" & in_IFETCH_ "+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");268 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_IMMEDIAT <= \"00\" & in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); "); 269 269 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_READ_RA <= '0'; "); 270 270 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_READ_RB <= '0'; "); … … 280 280 extend_signal = ""; 281 281 for(uint32_t cp = 0;cp < _param->_size_instruction_address - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & "; 282 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_ "+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");282 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); "); 283 283 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_EVENT_TYPE <= "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_NONE)+"; "); 284 284 … … 294 294 extend_signal = ""; 295 295 for(uint32_t cp = 0;cp < _param->_size_general_data - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & "; 296 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_IMMEDIAT <= \"00\" & in_IFETCH_ "+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");296 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_IMMEDIAT <= \"00\" & in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); "); 297 297 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_READ_RA <= '0'; "); 298 298 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_READ_RB <= '0'; "); … … 308 308 extend_signal = ""; 309 309 for(uint32_t cp = 0;cp < _param->_size_instruction_address - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & "; 310 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_ "+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");310 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); "); 311 311 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_EVENT_TYPE <= "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_NONE)+"; "); 312 312 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_vhdl_declaration.cpp
r135 r137 47 47 vhdl->set_signal ("internal_DECOD_INSTRUCTION_"+toString(i)+"_NO_EXECUTE ",1); 48 48 vhdl->set_signal ("internal_DECOD_INSTRUCTION_"+toString(i)+"_IS_DELAY_SLOT ",1); 49 #ifdef DEBUG50 49 vhdl->set_signal ("internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS ",_param->_size_instruction_address); 51 #endif52 50 vhdl->set_signal ("internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT ",_param->_size_instruction_address); 53 51 vhdl->set_signal ("internal_DECOD_IN_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT ",_param->_size_instruction_address); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Decod_queue.h
r136 r137 75 75 public : SC_IN (Tcontext_t ) ** in_DECOD_IN_CONTEXT_ID ;//[nb_inst_decod] 76 76 public : SC_IN (Tdepth_t ) ** in_DECOD_IN_DEPTH ;//[nb_inst_decod] 77 #ifdef STATISTICS 78 public : SC_IN (uint32_t ) ** in_DECOD_IN_INSTRUCTION ;//[nb_inst_decod] 79 #endif 77 80 public : SC_IN (Ttype_t ) ** in_DECOD_IN_TYPE ;//[nb_inst_decod] 78 81 public : SC_IN (Toperation_t ) ** in_DECOD_IN_OPERATION ;//[nb_inst_decod] … … 103 106 public : SC_OUT(Tcontext_t ) ** out_DECOD_OUT_CONTEXT_ID ;//[nb_inst_decod] 104 107 public : SC_OUT(Tdepth_t ) ** out_DECOD_OUT_DEPTH ;//[nb_inst_decod] 108 #ifdef STATISTICS 109 public : SC_OUT(uint32_t ) ** out_DECOD_OUT_INSTRUCTION ;//[nb_inst_decod] 110 #endif 105 111 public : SC_OUT(Ttype_t ) ** out_DECOD_OUT_TYPE ;//[nb_inst_decod] 106 112 public : SC_OUT(Toperation_t ) ** out_DECOD_OUT_OPERATION ;//[nb_inst_decod] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h
r112 r137 33 33 public : Tcontext_t * _context_id ; 34 34 public : Tdepth_t * _depth ; 35 #ifdef STATISTICS 36 public : uint32_t * _instruction ; 37 #endif 35 38 public : Ttype_t * _type ; 36 39 public : Toperation_t * _operation ; … … 62 65 ALLOC1(_context_id ,Tcontext_t ,_nb_inst); 63 66 ALLOC1(_depth ,Tdepth_t ,_nb_inst); 67 #ifdef STATISTICS 68 ALLOC1(_instruction ,uint32_t ,_nb_inst); 69 #endif 64 70 ALLOC1(_type ,Ttype_t ,_nb_inst); 65 71 ALLOC1(_operation ,Toperation_t ,_nb_inst); … … 94 100 DELETE1(_context_id ,_nb_inst); 95 101 DELETE1(_depth ,_nb_inst); 102 #ifdef STATISTICS 103 DELETE1(_instruction ,_nb_inst); 104 #endif 96 105 DELETE1(_type ,_nb_inst); 97 106 DELETE1(_operation ,_nb_inst); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_allocation.cpp
r123 r137 63 63 ALLOC1_SIGNAL_IN ( in_DECOD_IN_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 64 64 ALLOC1_SIGNAL_IN ( in_DECOD_IN_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 65 #ifdef STATISTICS 66 ALLOC1_SIGNAL_IN ( in_DECOD_IN_INSTRUCTION ,"instruction" ,uint32_t ,32 ); 67 #endif 65 68 ALLOC1_SIGNAL_IN ( in_DECOD_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type ); 66 69 ALLOC1_SIGNAL_IN ( in_DECOD_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); … … 97 100 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 98 101 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 102 #ifdef STATISTICS 103 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_INSTRUCTION ,"instruction" ,uint32_t ,32 ); 104 #endif 99 105 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_TYPE ,"type" ,Ttype_t ,_param->_size_type ); 100 106 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_deallocation.cpp
r123 r137 33 33 DELETE1_SIGNAL( in_DECOD_IN_CONTEXT_ID ,_param->_nb_inst_decod,_param->_size_context_id ); 34 34 DELETE1_SIGNAL( in_DECOD_IN_DEPTH ,_param->_nb_inst_decod,_param->_size_depth ); 35 #ifdef STATISTICS 36 DELETE1_SIGNAL( in_DECOD_IN_INSTRUCTION ,_param->_nb_inst_decod,32); 37 #endif 35 38 DELETE1_SIGNAL( in_DECOD_IN_TYPE ,_param->_nb_inst_decod,_param->_size_type ); 36 39 DELETE1_SIGNAL( in_DECOD_IN_OPERATION ,_param->_nb_inst_decod,_param->_size_operation ); … … 60 63 DELETE1_SIGNAL(out_DECOD_OUT_CONTEXT_ID ,_param->_nb_inst_decod,_param->_size_context_id ); 61 64 DELETE1_SIGNAL(out_DECOD_OUT_DEPTH ,_param->_nb_inst_decod,_param->_size_depth ); 65 #ifdef STATISTICS 66 DELETE1_SIGNAL(out_DECOD_OUT_INSTRUCTION ,_param->_nb_inst_decod,32); 67 #endif 62 68 DELETE1_SIGNAL(out_DECOD_OUT_TYPE ,_param->_nb_inst_decod,_param->_size_type ); 63 69 DELETE1_SIGNAL(out_DECOD_OUT_OPERATION ,_param->_nb_inst_decod,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_genMoore.cpp
r123 r137 55 55 if (_param->_have_port_depth) 56 56 PORT_WRITE(out_DECOD_OUT_DEPTH [i],reg_QUEUE[num_bank].front()->_depth [0]); 57 #ifdef STATISTICS 58 PORT_WRITE(out_DECOD_OUT_INSTRUCTION [i],reg_QUEUE[num_bank].front()->_instruction [0]); 59 #endif 57 60 PORT_WRITE(out_DECOD_OUT_TYPE [i],reg_QUEUE[num_bank].front()->_type [0]); 58 61 PORT_WRITE(out_DECOD_OUT_OPERATION [i],reg_QUEUE[num_bank].front()->_operation [0]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_transition.cpp
r136 r137 74 74 entry->_context_id [0] = context; 75 75 entry->_depth [0] = (_param->_have_port_depth)?PORT_READ(in_DECOD_IN_DEPTH [i]):0; 76 #ifdef STATISTICS 77 entry->_instruction [0] = PORT_READ(in_DECOD_IN_INSTRUCTION [i]); 78 #endif 76 79 entry->_type [0] = PORT_READ(in_DECOD_IN_TYPE [i]); 77 80 entry->_operation [0] = PORT_READ(in_DECOD_IN_OPERATION [i]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_genMoore.cpp
r123 r137 55 55 if (_param->_have_port_depth) 56 56 PORT_WRITE(out_DECOD_OUT_DEPTH [i],reg_QUEUE->front()->_depth [index]); 57 #ifdef STATISTICS 58 PORT_WRITE(out_DECOD_OUT_INSTRUCTION [i],reg_QUEUE->front()->_instruction [index]); 59 #endif 57 60 PORT_WRITE(out_DECOD_OUT_TYPE [i],reg_QUEUE->front()->_type [index]); 58 61 PORT_WRITE(out_DECOD_OUT_OPERATION [i],reg_QUEUE->front()->_operation [index]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_transition.cpp
r136 r137 77 77 entry->_context_id [i] = context; 78 78 entry->_depth [i] = (_param->_have_port_depth)?PORT_READ(in_DECOD_IN_DEPTH [i]):0; 79 #ifdef STATISTICS 80 entry->_instruction [i] = PORT_READ(in_DECOD_IN_INSTRUCTION [i]); 81 #endif 79 82 entry->_type [i] = PORT_READ(in_DECOD_IN_TYPE [i]); 80 83 entry->_operation [i] = PORT_READ(in_DECOD_IN_OPERATION [i]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Parameters.cpp
r135 r137 42 42 test(); 43 43 44 _size_internal_queue =45 (1 + // _val46 _size_context_id + // _context_id47 _size_depth + // _depth48 _size_type + // _type49 _size_operation + // _operation50 1 + // _no_execute51 1 + // _is_delay_slot52 #ifdef DEBUG53 _size_instruction_address + // _address54 #endif55 _size_instruction_address + // _address_next56 1 + // _has_immediat57 _size_general_data + // _immediat58 1 + // _read_ra59 _size_general_register_logic + // _num_reg_ra60 1 + // _read_rb61 _size_general_register_logic + // _num_reg_rb62 1 + // _read_rc63 _size_special_register_logic + // _num_reg_rc64 1 + // _write_rd65 _size_general_register_logic + // _num_reg_rd66 1 + // _write_re67 _size_special_register_logic + // _num_reg_re68 _size_exception_use + // _exception_use69 _size_exception_decod // _exception70 ) * _nb_inst_decod;71 72 44 if (is_toplevel) 73 45 { … … 111 83 log_begin(Decod_queue,FUNCTION); 112 84 85 _size_internal_queue = 86 (1 + // _val 87 _size_context_id + // _context_id 88 _size_depth + // _depth 89 _size_type + // _type 90 _size_operation + // _operation 91 1 + // _no_execute 92 1 + // _is_delay_slot 93 #ifdef DEBUG 94 _size_instruction_address + // _address 95 #endif 96 _size_instruction_address + // _address_next 97 1 + // _has_immediat 98 _size_general_data + // _immediat 99 1 + // _read_ra 100 _size_general_register_logic + // _num_reg_ra 101 1 + // _read_rb 102 _size_general_register_logic + // _num_reg_rb 103 1 + // _read_rc 104 _size_special_register_logic + // _num_reg_rc 105 1 + // _write_rd 106 _size_general_register_logic + // _num_reg_rd 107 1 + // _write_re 108 _size_special_register_logic + // _num_reg_re 109 _size_exception_use + // _exception_use 110 _size_exception_decod // _exception 111 ) * _nb_inst_decod; 112 113 113 log_end(Decod_queue,FUNCTION); 114 114 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/include/Decod_unit.h
r136 r137 83 83 public : SC_OUT(Tcontext_t ) ** out_DECOD_CONTEXT_ID ;//[nb_inst_decod] 84 84 public : SC_OUT(Tdepth_t ) ** out_DECOD_DEPTH ;//[nb_inst_decod] 85 #ifdef STATISTICS 86 public : SC_OUT(uint32_t ) ** out_DECOD_INSTRUCTION ;//[nb_inst_decod] 87 #endif 85 88 public : SC_OUT(Ttype_t ) ** out_DECOD_TYPE ;//[nb_inst_decod] 86 89 public : SC_OUT(Toperation_t ) ** out_DECOD_OPERATION ;//[nb_inst_decod] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_allocation.cpp
r136 r137 80 80 ALLOC1_SIGNAL_OUT(out_DECOD_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 81 81 ALLOC1_SIGNAL_OUT(out_DECOD_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 82 #ifdef STATISTICS 83 ALLOC1_SIGNAL_OUT(out_DECOD_INSTRUCTION ,"instruction" ,uint32_t ,32); 84 #endif 82 85 ALLOC1_SIGNAL_OUT(out_DECOD_TYPE ,"type" ,Ttype_t ,_param->_size_type ); 83 86 ALLOC1_SIGNAL_OUT(out_DECOD_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); … … 293 296 COMPONENT_MAP(_component,src ,"out_DECOD_" +toString(i)+"_DEPTH" , 294 297 dest, "in_DECOD_IN_"+toString(i)+"_DEPTH" ); 298 #ifdef STATISTICS 299 COMPONENT_MAP(_component,src ,"out_DECOD_" +toString(i)+"_INSTRUCTION" , 300 dest, "in_DECOD_IN_"+toString(i)+"_INSTRUCTION" ); 301 #endif 295 302 COMPONENT_MAP(_component,src ,"out_DECOD_" +toString(i)+"_TYPE" , 296 303 dest, "in_DECOD_IN_"+toString(i)+"_TYPE" ); … … 483 490 PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_DEPTH" , 484 491 dest,"out_DECOD_" +toString(i)+"_DEPTH" ); 492 #ifdef STATISTICS 493 PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_INSTRUCTION" , 494 dest,"out_DECOD_" +toString(i)+"_INSTRUCTION" ); 495 #endif 485 496 PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_TYPE" , 486 497 dest,"out_DECOD_" +toString(i)+"_TYPE" ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_deallocation.cpp
r136 r137 43 43 DELETE1_SIGNAL(out_DECOD_CONTEXT_ID ,_param->_nb_inst_decod,_param->_size_context_id ); 44 44 DELETE1_SIGNAL(out_DECOD_DEPTH ,_param->_nb_inst_decod,_param->_size_depth ); 45 #ifdef STATISTICS 46 DELETE1_SIGNAL(out_DECOD_INSTRUCTION ,_param->_nb_inst_decod,32); 47 #endif 45 48 DELETE1_SIGNAL(out_DECOD_TYPE ,_param->_nb_inst_decod,_param->_size_type ); 46 49 DELETE1_SIGNAL(out_DECOD_OPERATION ,_param->_nb_inst_decod,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue_vhdl_body.cpp
r135 r137 243 243 vhdl->set_body (3,"reg_ADDRESS <= var_ADDRESS;"); 244 244 if(_param->_have_port_inst_ifetch_ptr) 245 //vhdl->set_body (3,"reg_INST_IFETCH_PTR ("+reg_ptr_write+") <= var_INST_IFETCH_PTR;");245 //vhdl->set_body (3,"reg_INST_IFETCH_PTR ("+reg_ptr_write+") <= var_INST_IFETCH_PTR;"); 246 246 vhdl->set_body (3,"reg_INST_IFETCH_PTR <= var_INST_IFETCH_PTR;"); 247 247 // vhdl->set_body (3,"reg_BRANCH_STATE ("+reg_ptr_write+") <= var_BRANCH_STATE;"); … … 288 288 vhdl->set_body (1,"out_ADDRESS_ACK <= internal_ADDRESS_ACK;"); 289 289 if (_param->_have_port_ifetch_queue_ptr) { 290 vhdl->set_body (1,"out_ADDRESS_IFETCH_QUEUE_ID <= reg_PTR_WRITE;"); 290 uint32_t diff_size = _param->_size_ifetch_queue_ptr - log2(_param->_size_queue); 291 std::string complete_size = ""; 292 293 if (diff_size > 0) 294 complete_size = std_logic_cst(diff_size,0)+" &"; 295 296 vhdl->set_body (1,"out_ADDRESS_IFETCH_QUEUE_ID <= "+complete_size+" reg_PTR_WRITE;"); 291 297 } 292 298 } … … 303 309 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_VAL <= internal_DECOD_"+toString(j)+"_VAL;"); 304 310 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_INSTRUCTION <= reg_DATA("+reg_ptr_read+")("+toString(j)+") ;"); 311 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_ADDRESS <= reg_ADDRESS("+reg_ptr_read+")+"+std_logic_cst(_param->_size_instruction,j)+";"); 312 if (_param->_have_port_inst_ifetch_ptr) 313 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_BRANCH_STATE <= reg_BRANCH_STATE("+reg_ptr_read+") when reg_INST_IFETCH_PTR("+reg_ptr_read+") = "+std_logic_cst(_param->_size_inst_ifetch_ptr,j)+" else "+std_logic_cst(_param->_size_branch_state,BRANCH_STATE_NONE)+";"); 314 else 315 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_BRANCH_STATE <= reg_BRANCH_STATE("+reg_ptr_read+");"); 316 317 if (_param->_have_port_depth) 318 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_BRANCH_UPDATE_PREDICTION_ID <= reg_BRANCH_UPDATE_PREDICTION_ID("+reg_ptr_read+");"); 319 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_EXCEPTION <= reg_EXCEPTION("+reg_ptr_read+");"); 320 305 321 } 306 vhdl->set_body(0,"out_DECOD_ADDRESS <= reg_ADDRESS("+reg_ptr_read+");");307 if (_param->_have_port_inst_ifetch_ptr)308 vhdl->set_body(0,"out_DECOD_INST_IFETCH_PTR <= reg_INST_IFETCH_PTR("+reg_ptr_read+");");309 vhdl->set_body(0,"out_DECOD_BRANCH_STATE <= reg_BRANCH_STATE("+reg_ptr_read+");");310 if (_param->_have_port_depth)311 vhdl->set_body(0,"out_DECOD_BRANCH_UPDATE_PREDICTION_ID <= reg_BRANCH_UPDATE_PREDICTION_ID("+reg_ptr_read+");");312 vhdl->set_body(0,"out_DECOD_EXCEPTION <= reg_EXCEPTION("+reg_ptr_read+");");313 322 } 314 323 vhdl->set_body(0,""); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue_vhdl_declaration.cpp
r135 r137 62 62 vhdl->set_type ("Tenable ","array ("+toString(_param->_size_queue-1)+" downto 0) of Tcase_enable"); 63 63 vhdl->set_signal ("reg_INSTRUCTION_ENABLE ", "Tenable"); 64 vhdl->set_type ("Tadress ","array ("+toString(_param->_size_queue-1)+" downto 0) of "+std_logic(_param->_size_instruction ));64 vhdl->set_type ("Tadress ","array ("+toString(_param->_size_queue-1)+" downto 0) of "+std_logic(_param->_size_instruction_address)); 65 65 vhdl->set_signal ("reg_ADDRESS ", "Tadress"); 66 66 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/include/Front_end.h
r123 r137 90 90 public : SC_OUT(Tcontext_t ) ** out_DECOD_CONTEXT_ID ;//[sum_inst_decod] 91 91 public : SC_OUT(Tdepth_t ) ** out_DECOD_DEPTH ;//[sum_inst_decod] 92 #ifdef STATISTICS 93 public : SC_OUT(uint32_t ) ** out_DECOD_INSTRUCTION ;//[sum_inst_decod] 94 #endif 92 95 public : SC_OUT(Ttype_t ) ** out_DECOD_TYPE ;//[sum_inst_decod] 93 96 public : SC_OUT(Toperation_t ) ** out_DECOD_OPERATION ;//[sum_inst_decod] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/src/Front_end_allocation.cpp
r136 r137 98 98 ALLOC1_SIGNAL_OUT (out_DECOD_CONTEXT_ID ,"CONTEXT_ID" ,Tcontext_t ,_param->_size_context_id ); 99 99 ALLOC1_SIGNAL_OUT (out_DECOD_DEPTH ,"DEPTH" ,Tdepth_t ,_param->_size_depth ); 100 #ifdef STATISTICS 101 ALLOC1_SIGNAL_OUT (out_DECOD_INSTRUCTION ,"INSTRUCTION" ,uint32_t ,32); 102 #endif 100 103 ALLOC1_SIGNAL_OUT (out_DECOD_TYPE ,"TYPE" ,Ttype_t ,_param->_size_type ); 101 104 ALLOC1_SIGNAL_OUT (out_DECOD_OPERATION ,"OPERATION" ,Toperation_t ,_param->_size_operation ); … … 700 703 701 704 for (uint32_t j=0; j<_param->_decod_unit_nb_context[i]; ++j) 702 { 703 dest = _name+"_glue"; 704 #ifdef POSITION 705 _component->interface_map (src ,"ifetch_"+toString(j), 706 dest,"ifetch_"+toString(i)+"_"+toString(j)); 707 #endif 708 709 if (_param->_have_port_context_id) 710 COMPONENT_MAP(_component,src , "in_IFETCH_"+toString(j) +"_CONTEXT_ID", 711 dest,"out_IFETCH_"+toString(i)+"_"+toString(j)+"_DECOD_UNIT_CONTEXT_ID"); 712 } 705 for (uint32_t k=0; k<_param->_nb_inst_fetch [j];++k) 706 { 707 dest = _name+"_glue"; 708 #ifdef POSITION 709 _component->interface_map (src ,"ifetch_"+toString(j)+"_"+toString(k), 710 dest,"ifetch_"+toString(i)+"_"+toString(j)); 711 #endif 712 713 if (_param->_have_port_context_id) 714 COMPONENT_MAP(_component,src , "in_IFETCH_"+toString(j)+"_"+toString(k)+"_CONTEXT_ID", 715 dest,"out_IFETCH_"+toString(i)+"_"+toString(j)+"_DECOD_UNIT_CONTEXT_ID"); 716 } 713 717 714 718 // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 729 733 PORT_MAP(_component,src ,"out_DECOD_"+toString(j)+"_DEPTH" , 730 734 dest,"out_DECOD_"+toString(x)+"_DEPTH" ); 735 #ifdef STATISTICS 736 PORT_MAP(_component,src ,"out_DECOD_"+toString(j)+"_INSTRUCTION" , 737 dest,"out_DECOD_"+toString(x)+"_INSTRUCTION" ); 738 #endif 731 739 PORT_MAP(_component,src ,"out_DECOD_"+toString(j)+"_TYPE" , 732 740 dest,"out_DECOD_"+toString(x)+"_TYPE" ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/src/Front_end_deallocation.cpp
r128 r137 45 45 DELETE1_SIGNAL(out_DECOD_CONTEXT_ID ,_param->_sum_inst_decod,_param->_size_context_id ); 46 46 DELETE1_SIGNAL(out_DECOD_DEPTH ,_param->_sum_inst_decod,_param->_size_depth ); 47 #ifdef STATISTICS 48 DELETE1_SIGNAL(out_DECOD_INSTRUCTION ,_param->_sum_inst_decod,32); 49 #endif 47 50 DELETE1_SIGNAL(out_DECOD_TYPE ,_param->_sum_inst_decod,_param->_size_type ); 48 51 DELETE1_SIGNAL(out_DECOD_OPERATION ,_param->_sum_inst_decod,_param->_size_operation );
Note: See TracChangeset
for help on using the changeset viewer.