/* This file is part of jpcsp. Jpcsp is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Jpcsp is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Jpcsp. If not, see <http://www.gnu.org/licenses/>. */ package jpcsp.Allegrex; /** * * @author hli */ public interface Operations { public void opUNK(String reason); public void opNOP(); public void opSLL(int rd, int rt, int sa); public void opSRL(int rd, int rt, int sa); public void opSRA(int rd, int rt, int sa); public void opSLLV(int rd, int rt, int rs); public void opSRLV(int rd, int rt, int rs); public void opSRAV(int rd, int rt, int rs); public void opJR(int rs); public void opJALR(int rd, int rs); public void opMFHI(int rd); public void opMTHI(int rs); public void opMFLO(int rd); public void opMTLO(int rs); public void opMULT(int rs, int rt); public void opMULTU(int rs, int rt); public void opDIV(int rs, int rt); public void opDIVU(int rs, int rt); public void opADD(int rd, int rs, int rt); public void opADDU(int rd, int rs, int rt); public void opSUB(int rd, int rs, int rt); public void opSUBU(int rd, int rs, int rt); public void opAND(int rd, int rs, int rt); public void opOR(int rd, int rs, int rt); public void opXOR(int rd, int rs, int rt); public void opNOR(int rd, int rs, int rt); public void opSLT(int rd, int rs, int rt); public void opSLTU(int rd, int rs, int rt); public void opBLTZ(int rs, int simm16); public void opBGEZ(int rs, int simm16); public void opBLTZL(int rs, int simm16); public void opBGEZL(int rs, int simm16); public void opBLTZAL(int rs, int simm16); public void opBGEZAL(int rs, int simm16); public void opBLTZALL(int rs, int simm16); public void opBGEZALL(int rs, int simm16); public void opJ(int uimm26); public void opJAL(int uimm26); public void opBEQ(int rs, int rt, int simm16); public void opBNE(int rs, int rt, int simm16); public void opBLEZ(int rs, int simm16); public void opBGTZ(int rs, int simm16); public void opBEQL(int rs, int rt, int simm16); public void opBNEL(int rs, int rt, int simm16); public void opBLEZL(int rs, int simm16); public void opBGTZL(int rs, int simm16); public void opADDI(int rt, int rs, int simm16); public void opADDIU(int rt, int rs, int simm16); public void opSLTI(int rt, int rs, int simm16); public void opSLTIU(int rt, int rs, int simm16); public void opANDI(int rt, int rs, int uimm16); public void opORI(int rt, int rs, int uimm16); public void opXORI(int rt, int rs, int uimm16); public void opLUI(int rt, int uimm16); public void opHALT(); public void opMFIC(int rt); public void opMTIC(int rt); public void opMFC0(int rt, int c0dr); public void opCFC0(int rt, int c0cr); public void opMTC0(int rt, int c0dr); public void opCTC0(int rt, int c0cr); public void opERET(); public void opLB(int rt, int rs, int simm16); public void opLBU(int rt, int rs, int simm16); public void opLH(int rt, int rs, int simm16); public void opLHU(int rt, int rs, int simm16); public void opLWL(int rt, int rs, int simm16); public void opLW(int rt, int rs, int simm16); public void opLWR(int rt, int rs, int simm16); public void opSB(int rt, int rs, int simm16); public void opSH(int rt, int rs, int simm16); public void opSWL(int rt, int rs, int simm16); public void opSW(int rt, int rs, int simm16); public void opSWR(int rt, int rs, int simm16); public void opCACHE(int rt, int rs, int simm16); public void opLL(int rt, int rs, int simm16); public void opLWC1(int rt, int rs, int simm16); public void opLVS(int vt, int rs, int simm14); public void opSC(int rt, int rs, int simm16); public void opSWC1(int rt, int rs, int simm16); public void opSVS(int vt, int rs, int simm14); public void opROTR(int rd, int rt, int sa); public void opROTRV(int rd, int rt, int rs); public void opMOVZ(int rd, int rs, int rt); public void opMOVN(int rd, int rs, int rt); public void opSYSCALL(int code); public void opBREAK(int code); public void opSYNC(); public void opCLZ(int rd, int rs); public void opCLO(int rd, int rs); public void opMADD(int rs, int rt); public void opMADDU(int rs, int rt); public void opMAX(int rd, int rs, int rt); public void opMIN(int rd, int rs, int rt); public void opMSUB(int rs, int rt); public void opMSUBU(int rs, int rt); public void opEXT(int rt, int rs, int rd, int sa); public void opINS(int rt, int rs, int rd, int sa); public void opWSBH(int rd, int rt); public void opWSBW(int rd, int rt); public void opSEB(int rd, int rt); public void opBITREV(int rd, int rt); public void opSEH(int rd, int rt); //COP1 instructions public void opMFC1(int rt, int c1dr); public void opCFC1(int rt, int c1cr); public void opMTC1(int rt, int c1dr); public void opCTC1(int rt, int c1cr); public void opBC1F(int simm16); public void opBC1T(int simm16); public void opBC1FL(int simm16); public void opBC1TL(int simm16); public void opADDS(int fd, int fs, int ft); public void opSUBS(int fd, int fs, int ft); public void opMULS(int fd, int fs, int ft); public void opDIVS(int fd, int fs, int ft); public void opSQRTS(int fd, int fs); public void opABSS(int fd, int fs); public void opMOVS(int fd, int fs); public void opNEGS(int fd, int fs); public void opROUNDWS(int fd, int fs); public void opTRUNCWS(int fd, int fs); public void opCEILWS(int fd, int fs); public void opFLOORWS(int fd, int fs); public void opCVTSW(int fd, int fs); public void opCVTWS(int fd, int fs); public void opCCONDS(int fs, int ft, int cond); // VFPU0 public void opVADD(int vsize, int vd, int vs, int vt); public void opVSUB(int vsize, int vd, int vs, int vt); public void opVSBN(int vsize, int vd, int vs, int vt); public void opVDIV(int vsize, int vd, int vs, int vt); // VFPU1 public void opVMUL(int vsize, int vd, int vs, int vt); public void opVDOT(int vsize, int vd, int vs, int vt); public void opVSCL(int vsize, int vd, int vs, int vt); public void opVHDP(int vsize, int vd, int vs, int vt); public void opVCRS(int vsize, int vd, int vs, int vt); public void opVDET(int vsize, int vd, int vs, int vt); // VFPU3 public void opVCMP(int vsize, int vs, int vt, int cond); public void opVMIN(int vsize, int vd, int vs, int vt); public void opVMAX(int vsize, int vd, int vs, int vt); public void opVSCMP(int vsize, int vd, int vs, int vt); public void opVSGE(int vsize, int vd, int vs, int vt); public void opVSLT(int vsize, int vd, int vs, int vt); // VFPU5 public void opVPFXS(int imm24); public void opVPFXT(int imm24); public void opVPFXD(int imm24); public void opVIIM(int vs, int imm16); public void opVFIM(int vs, int imm16); }