/* MIPS R2000/3000 Instructions */ typedef enum {SPECIAL, REGIMM, J, JAL, BEQ, BNE, BLEZ, BGTZ, ADDI, ADDIU, SLTI, SLTIU, ANDI, ORI, XORI, LUI, COP0, COP1, COP2, COP3, LB=32, LH, LWL, LW, LBU, LHU, LWR, SB=40, SH, SWL, SW, SWR=46, LWC0=48, LWC1, LWC2, LWC3, SWC0=56, SWC1, SWC2, SWC3 } opcodefld; typedef enum { /* SPECIAL function */ SLL, SRL=2, SRA, SLLV, SRLV=6, SRAV, JR, JALR, SYSCALL=12, BREAK, MFHI=16, MTHI, MFLO, MTLO, MULT=24, MULTU, DIV, DIVU, ADD=32, ADDU, SUB, SUBU, AND, OR, XOR, NOR, SLT=42, SLTU } specialfld; enum { BLTZ, BGEZ, BLTZAL=16, BGEZAL}; /* REGIMM rt */ enum { MF=0, CF=2, MT=4, CT=6, BC=8, CO=16, FF_S=16, FF_D, FF_W=20 }; /* COPz rs */ enum { S = 0, D, DUMMY1, DUMMY2, W }; /* COPz res */ enum { BCF, BCT }; /* COPz rt */ /* MIPS R2010/3010 Floating Point Unit */ typedef enum {FADD, FSUB, FMUL, FDIV, FABS=5, FMOV, FNEG, FCVTS=32, FCVTD, FCVTW=36, C_F=48, CUN, CEQ, CUEQ, COLT, CULT, COLE, CULE, CSF, CNGLE, CSEQ, CNGL, CLT, CNGE, CLE, CNGT } functionfld; typedef enum {COND_UN=0x1, COND_EQ=0x2, COND_LT=0x4, COND_IN=0x8} fpcondcodes;