// 110 | --- | --- | --- | --- | --- | --- | --- | --- | // hi |-------|-------|-------|-------|-------|-------|-------|-------| { "ext", "t,s,i5,je", MIPS_SPECIAL3(0), MA_PSP }, { "ins", "t,s,i5,ji", MIPS_SPECIAL3(4), MA_PSP }, // 31-------26----------------------------------10--------5--------0 // |=SPECIAL3| | secfunc |ALLEGREX0| // ------11---------5-------------------------------5---------6----- // |--000--|--001--|--010--|--011--|--100--|--101--|--110--|--111--| lo // 00 | --- | --- | WSBH | WSBW | --- | --- | --- | --- | // 01 | --- | --- | --- | --- | --- | --- | --- | --- | // 10 | SEB | --- | --- | --- |BITREV | --- | --- | --- | // 11 | SEH | --- | --- | --- | --- | --- | --- | --- | // hi |-------|-------|-------|-------|-------|-------|-------|-------| // VVVVVV ----- ttttt ddddd VVVVV VVVVVV { "wsbh", "d,t", MIPS_ALLEGREX0(0x02), MA_PSP }, { "wsbh", "d", MIPS_ALLEGREX0(0x02), MA_PSP }, { "wsbw", "d,t", MIPS_ALLEGREX0(0x03), MA_PSP }, { "wsbw", "d", MIPS_ALLEGREX0(0x03), MA_PSP }, { "seb", "d,t", MIPS_ALLEGREX0(0x10), MA_PSP }, { "seb", "d", MIPS_ALLEGREX0(0x10), MA_PSP }, { "bitrev", "d,t", MIPS_ALLEGREX0(0x14), MA_PSP }, { "bitrev", "d", MIPS_ALLEGREX0(0x14), MA_PSP }, { "seh", "d,t", MIPS_ALLEGREX0(0x18), MA_PSP }, { "seh", "d", MIPS_ALLEGREX0(0x18), MA_PSP }, // VFPU4: This one is a bit messy. // 31-------26------21---------------------------------------------0 // |= VFPU4| rs | | // -----6-------5---------------------------------------------------
// hi |-------|-------|-------|-------|-------|-------|-------|-------| { "cvt.s.w", "D,S", MIPS_COP1W(0x20), MA_MIPS2, 0 }, // 31---------26-----23--------------------------------------------0 // |= VFPU0| VOP | | // ------6--------3------------------------------------------------- // |--000--|--001--|--010--|--011--|--100--|--101--|--110--|--111--| // 000 | VADD | VSUB | VSBN | --- | --- | --- | --- | VDIV | 00..07 // hi |-------|-------|-------|-------|-------|-------|-------|-------| { "vadd.S", "vd,vs,vt", MIPS_VFPU0(0x00), MA_PSP, MO_VFPU }, { "vsub.S", "vd,vs,vt", MIPS_VFPU0(0x01), MA_PSP, MO_VFPU }, { "vsbn.S", "vd,vs,vt", MIPS_VFPU0(0x02), MA_PSP, MO_VFPU }, { "vdiv.S", "vd,vs,vt", MIPS_VFPU0(0x07), MA_PSP, MO_VFPU }, // allegrex0 { "seh", "d,t", MIPS_ALLEGREX0(16), MA_PSP }, { "seh", "d,t", MIPS_ALLEGREX0(24), MA_PSP }, // END { NULL, NULL, 0, 0 } }; const MipsArchDefinition mipsArchs[] = { // MARCH_PSX { "PSX", MA_MIPS1, MA_EXPSX, 0 }, // MARCH_N64 { "N64", MA_MIPS1|MA_MIPS2|MA_MIPS3, MA_EXN64, MO_FPU }, // MARCH_PS2 { "PS2", MA_MIPS1|MA_MIPS2|MA_MIPS3|MA_PS2, MA_EXPS2, MO_64BIT|MO_FPU }, // MARCH_PSP