############################################################ # This file was created by Javier Nieto. # You may use, distribute and do wathever you want. # Only 2 restrictions: # 1 - Any improve or bug detected should be posted to m3ntol@yahoo.es # 2 - Keep this header in all distributions you do # ############################# # INSTRUCTION FILE DEFINITION # #INTRUCTION DEFNITION FORMAT: #TYPE OF INSTRUCION: 0-UPPER 1-LOWER #NEMOTECTIC OF ISTRUCTION #FLAVORS 0-NO FLAVORS 1-3 FLAVORS 2-8 FLAVORS #NUM PARAMS #TYPE OF PARAM 1 VI VF VIdest VFdest ACC Imm24 Imm15 Imm12 Imm11 Imm5 I #TYPE OF PARAM 2 Imm11(VI) Imm11(VI)dest (VI)dest (--VI) (VI++) P Q R VI01 Fmm32 # .... TYPE OF PARAM N #THROUGHPUT #LATENCY ############################### # # ############################### # UPPER INSTRUCIONS # ############################### # ABS.dest VF[ft]dest, VF[fs]dest 0 ABS.dest 0 2 VFdest VFdest 1 4 # ADD.dest VF[fd]dest, VF[fs]dest, VF[ft]dest (ADDi, ADDq, ADDbc, ADDA, ADDAi, ADDAq, ADDAbc) 0 ADD.dest 2 3 VFdest VFdest VFdest 1 4 # CLIPw.dest VF[fs]dest, VF[ft]w 0 CLIPw.dest 0 2 VFdest VFdest 1 4 # FTOI0.dest VF[ft]dest, VF[fs]dest 0 FTOI0.dest 0 2 VFdest VFdest 1 4 # FTOI4.dest VF[ft]dest, VF[fs]dest 0 FTOI4.dest 0 2 VFdest VFdest 1 4 # FTOI12.dest VF[ft]dest, VF[fs]dest 0 FTOI12.dest 0 2 VFdest VFdest 1 4 # FTOI15.dest VF[ft]dest, VF[fs]dest 0 FTOI15.dest 0 2 VFdest VFdest 1 4 # ITOF0.dest VF[ft]dest, VF[fs]dest 0 ITOF0.dest 0 2 VFdest VFdest 1 4 # ITOF4.dest VF[ft]dest, VF[fs]dest 0 ITOF4.dest 0 2 VFdest VFdest 1 4 # ITOF12.dest VF[ft]dest, VF[fs]dest 0 ITOF12.dest 0 2 VFdest VFdest 1 4 # ITOF15.dest VF[ft]dest, VF[fs]dest 0 ITOF15.dest 0 2 VFdest VFdest 1 4 # MADD.dest VF[fd]dest, VF[fs]dest, VF[ft]dest (MADDi, MADDq, MADDbc, MADDA, MADDAi, MADDAq, MADDAbc) 0 MADD.dest 2 3 VFdest VFdest VFdest 1 4 # MAX.dest VF[fd]dest, VF[fs]dest, VF[ft]dest (MAXi, MAXbc) 0 MAX.dest 2 3 VFdest VFdest VFdest 1 4 # MINI.dest VF[fd]dest, VF[fs]dest, VF[ft]dest (MINi, MINbc) 0 MINI.dest 1 3 VFdest VFdest VFdest 1 4 # MSUB.dest VF[fd]dest, VF[fs]dest, VF[ft]dest (MSUBi, MSUBq, MSUBbc, MSUBA, MSUBAi, MSUBAq, MSUBAbc) 0 MSUB.dest 2 3 VFdest VFdest VFdest 1 4 # MUL.dest VF[fd]dest, VF[fs]dest, VF[ft]dest (MULi, MULq, MULbc, MULA, MULAi, MULAq, MULAbc) 0 MUL.dest 2 3 VFdest VFdest VFdest 1 4 # NOP 0 NOP 0 0 1 4 # OPMULA.xyz ACCxyz, VF[fs]xyz, VF[ft]xyz 0 OPMULA.xyz 0 3 ACC VF VF 1 4 # OPMSUB.xyz VF[fd]xyz, VF[fs]xyz, VF[ft]xyz 0 OPMSUB.xyz 0 3 VF VF VF 1 4 # SUB.dest VF[fd]dest, VF[fs]dest, VF[ft]dest (SUBi, SUBq, SUBbc, SUBA, SUBAi, SUBAq, SUBAbc) 0 SUB.dest 2 3 VFdest VFdest VFdest 1 4 ############################### # END UPPER INSTRUCIONS # ############################### # # # ############################### # LOWER INSTRUCIONS # ############################### # B Imm11 1 B 0 1 Imm11 2 2 # BAL VI[it], Imm11 1 BAL 0 2 VI Imm11 2 2 # DIV Q, VF[fs]fsf, VF[ft]ftf 1 DIV 0 3 Q VFdest VFdest 7 7 # EATAN P, VF[fs]fsf 1 EATAN 0 2 P VFdest 53 54 # EATANxy P, VF[fs] 1 EATANxy 0 2 P VF 53 54 # EATANxz P, VF[fs] 1 EATANxz 0 2 P VF 53 54 # EEXP P, VF[fs] 1 EEXP 0 2 P VF 43 44 # ELENG P, VF[fs] 1 ELENG 0 2 P VF 17 18 # ERCPR P, VF[fs]fsf 1 ERCPR 0 2 P VFdest 11 12 # ERLENG P, VF[fs] 1 ERLENG 0 2 P VF 23 24 # ERSADD P, VF[fs] 1 ERSADD 0 2 P VF 17 18 # ERSQRT P, VF[fs]fsf 1 ERSQRT 0 2 P VFdest 17 18 # ESADD P, VF[fs] 1 ESADD 0 2 P VF 10 11 # ESIN P, VF[fs]fsf 1 ESIN 0 2 P VFdest 28 29 # ESQRT P, VF[fs]fsf 1 ESQRT 0 2 P VFdest 11 12 # ESUM P, VF[fs] 1 ESUM 0 2 P VF 11 12 # FCAND VI01, Imm24 1 FCAND 0 2 VI01 Imm24 1 1 # FCEQ VI01, Imm24 1 FCEQ 0 2 VI01 Imm24 1 1 # FCGET VI[fs] 1 FCGET 0 1 VI 1 1 # FCOR VI01, Imm24 1 FCOR 0 2 VI01 Imm24 1 1 # FCSET Imm24 1 FCSET 0 1 IMM24 1 4 # FMAND VI[it], VI[is] 1 FMAND 0 2 VI VI 1 1 # FMEQ VI[it], VI[is] 1 FMEQ 0 2 VI VI 1 1 # FMOR VI[it], VI[is] 1 FMOR 0 2 VI VI 1 1 # FSAND VI[it], Imm12 1 FSAND 0 2 VI Imm24 1 1 # FSEQ VI[it], Imm24 1 FSEQ 0 2 VI Imm24 1 1 # FSOR VI[it], Imm12 1 FSOR 0 2 VI Imm24 1 1 # FSSET Imm24 1 FSSET 0 1 Imm12 1 4 # IADD VI[id], VI[is], VI[it] 1 IADD 0 3 VI VI VI 1 1 # IADDI VI[id], VI[is], Imm5 1 IADDI 0 3 VI VI Imm5 1 1 # IADDIU VI[id], VI[is], Imm15 1 IADDIU 0 3 VI VI Imm15 1 1 # IAND VI[id], VI[is], VI[it] 1 IAND 0 3 VI VI VI 1 1 # IBEQ VI[id], VI[is], Imm11 1 IBEQ 0 3 VI VI Imm11 2 2 # IBGEZ VI[is], Imm11 1 IBGEZ 0 2 VI Imm11 2 2 # IBGTZ VI[is], Imm11 1 IBGTZ 0 2 VI Imm11 2 2 # IBLEZ VI[is], Imm11 1 IBLEZ 0 2 VI Imm11 2 2 # IBLTZ VI[is], Imm11 1 IBLTZ 0 2 VI Imm11 2 2 # IBNE VI[id], VI[is], Imm11 1 IBNE 0 3 VI VI Imm11 2 2 # ILW.dest VI[it], Imm11(VI[is])dest 1 ILW.dest 0 2 VI Imm11(VI)dest 1 4 # ILWR.dest VI[it], (VI[is])dest 1 ILWR.dest 0 2 VI (VI)dest 1 4 # IOR VI[id], VI[is], VI[it] 1 IOR 0 3 VI VI VI 1 1 # ISUB VI[id], VI[is], VI[it] 1 ISUB 0 3 VI VI VI 1 1 # ISUBIU VI[id], VI[is], Imm15 1 ISUBIU 0 3 VI VI Imm15 1 1 # ISW.dest VI[it], Imm11(VI[is])dest 1 ISW.dest 0 2 VI Imm11(VI)dest 1 4 # ISWR.dest VI[it], (VI[is])dest 1 ISWR.dest 0 2 VI (VI)dest 1 4 # JALR VI[it], VI[is] 1 JALR 0 2 VI VI 2 2 # JR VI[it] 1 JR 0 1 VI 2 2 # LQ.dest VF[it].dest, Imm11(VI[is]) 1 LQ.dest 0 2 VFdest Imm11(VI) 1 4 # LQD.dest VF[it].dest, (--VI[is]) 1 LQD.dest 0 2 VFdest (--VI) 1 4 # LQI.dest VF[it].dest, (VI[is]++) 1 LQI.dest 0 2 VFdest (VI++) 1 4 # MFIR.dest VF[it].dest, VI[is] 1 MFIR.dest 0 2 VFdest VI 1 4 # MFP.dest VF[it].dest, P 1 MFP.dest 0 2 VFdest P 1 4 # MOVE.dest VF[it].dest, VF[is].dest 1 MOVE.dest 0 2 VFdest VFdest 1 4 # MR32.dest VF[it].dest, VF[is].dest 1 MR32.dest 0 2 VFdest VFdest 1 4 # MTIR VI[it], VF[is].dest 1 MTIR 0 2 VI VFdest 1 4 # NOP .In fact there is no nop lower instruction but compilers support it 1 NOP 0 0 1 4 # RGET.dest VF[it].dest, R 1 RGET.dest 0 2 VFdest R 1 4 # RINIT R, VF[it].dest 1 RINIT 0 2 R VFdest 1 4 # RNEXT.dest VF[it].dest, R 1 RNEXT.dest 0 2 VFdest R 1 4 # RSQRT Q, VF[it].dest, VF[is].dest 1 RSQRT 0 3 Q VFdest VFdest 13 13 # RXOR R, VF[it].dest 1 RXOR 0 2 R VFdest 1 1 # SQ.dest VF[it].dest, Imm11(VI[is]) 1 SQ.dest 0 2 VFdest Imm11(VI) 1 4 # SQD.dest VF[it].dest, (--VI[is]) 1 SQD.dest 0 2 VFdest (--VI) 1 4 # SQI.dest VF[it].dest, (VI[is]++) 1 SQI.dest 0 2 VFdest (VI++) 1 4 # SQRT Q, VF[it].dest 1 SQRT 0 2 Q VFdest 7 7 # WAITP 1 WAITP 0 0 1 1 # WAITQ 1 WAITQ 0 0 1 1 # XGKICK VI[it] 1 XGKICK 0 1 VI 1 1 # XITOP VI[it] 1 XITOP 0 1 VI 1 1 # XTOP VI[it] 1 XTOP 0 1 VI 1 1 ############################### # SPECIAL INSTRUCIONS # ############################### # LOI Fmm32 1 LOI 0 1 Fmm32 1 1 # MAXI.dest VF[fd]dest, VF[fs]dest, I 0 MAXI.dest 2 3 VFdest VFdest I 1 4