diff options
Diffstat (limited to 'src/emu/cpu/mips/mips3fe.c')
-rw-r--r-- | src/emu/cpu/mips/mips3fe.c | 422 |
1 files changed, 211 insertions, 211 deletions
diff --git a/src/emu/cpu/mips/mips3fe.c b/src/emu/cpu/mips/mips3fe.c index 9f2b50a14e7..262534d805b 100644 --- a/src/emu/cpu/mips/mips3fe.c +++ b/src/emu/cpu/mips/mips3fe.c @@ -52,7 +52,7 @@ mips3_frontend::mips3_frontend(mips3_state &state, UINT32 window_start, UINT32 window_end, UINT32 max_sequence) : drc_frontend(*state.device, window_start, window_end, max_sequence), - m_context(state) + m_context(state) { } @@ -88,46 +88,46 @@ bool mips3_frontend::describe(opcode_desc &desc, const opcode_desc *prev) opswitch = op >> 26; switch (opswitch) { - case 0x00: // SPECIAL + case 0x00: // SPECIAL return describe_special(op, desc); - case 0x01: // REGIMM + case 0x01: // REGIMM return describe_regimm(op, desc); - case 0x10: // COP0 + case 0x10: // COP0 return describe_cop0(op, desc); - case 0x11: // COP1 + case 0x11: // COP1 return describe_cop1(op, desc); - case 0x12: // COP2 + case 0x12: // COP2 return describe_cop2(op, desc); - case 0x13: // COP1X - MIPS IV + case 0x13: // COP1X - MIPS IV if (m_context.flavor < MIPS3_TYPE_MIPS_IV) return false; return describe_cop1x(op, desc); - case 0x1c: // IDT-specific opcodes: mad/madu/mul on R4640/4650, msub on RC32364 + case 0x1c: // IDT-specific opcodes: mad/madu/mul on R4640/4650, msub on RC32364 return describe_idt(op, desc); - case 0x02: // J + case 0x02: // J desc.flags |= OPFLAG_IS_UNCONDITIONAL_BRANCH | OPFLAG_END_SEQUENCE; desc.targetpc = (desc.pc & 0xf0000000) | (LIMMVAL << 2); desc.delayslots = 1; return true; - case 0x03: // JAL + case 0x03: // JAL desc.regout[0] |= REGFLAG_R(31); desc.flags |= OPFLAG_IS_UNCONDITIONAL_BRANCH | OPFLAG_END_SEQUENCE; desc.targetpc = (desc.pc & 0xf0000000) | (LIMMVAL << 2); desc.delayslots = 1; return true; - case 0x04: // BEQ - case 0x05: // BNE - case 0x14: // BEQL - case 0x15: // BNEL + case 0x04: // BEQ + case 0x05: // BNE + case 0x14: // BEQL + case 0x15: // BNEL if ((opswitch == 0x04 || opswitch == 0x14) && RSREG == RTREG) desc.flags |= OPFLAG_IS_UNCONDITIONAL_BRANCH | OPFLAG_END_SEQUENCE; else @@ -140,10 +140,10 @@ bool mips3_frontend::describe(opcode_desc &desc, const opcode_desc *prev) desc.skipslots = (opswitch & 0x10) ? 1 : 0; return true; - case 0x06: // BLEZ - case 0x07: // BGTZ - case 0x16: // BLEZL - case 0x17: // BGTZL + case 0x06: // BLEZ + case 0x07: // BGTZ + case 0x16: // BLEZL + case 0x17: // BGTZL if ((opswitch == 0x06 || opswitch == 0x16) && RSREG == 0) desc.flags |= OPFLAG_IS_UNCONDITIONAL_BRANCH | OPFLAG_END_SEQUENCE; else @@ -156,96 +156,96 @@ bool mips3_frontend::describe(opcode_desc &desc, const opcode_desc *prev) desc.skipslots = (opswitch & 0x10) ? 1 : 0; return true; - case 0x08: // ADDI - case 0x18: // DADDI + case 0x08: // ADDI + case 0x18: // DADDI desc.regin[0] |= REGFLAG_R(RSREG); desc.regout[0] |= REGFLAG_R(RTREG); desc.flags |= OPFLAG_CAN_CAUSE_EXCEPTION; return true; - case 0x09: // ADDIU - case 0x0a: // SLTI - case 0x0b: // SLTIU - case 0x0c: // ANDI - case 0x0d: // ORI - case 0x0e: // XORI - case 0x19: // DADDIU + case 0x09: // ADDIU + case 0x0a: // SLTI + case 0x0b: // SLTIU + case 0x0c: // ANDI + case 0x0d: // ORI + case 0x0e: // XORI + case 0x19: // DADDIU desc.regin[0] |= REGFLAG_R(RSREG); desc.regout[0] |= REGFLAG_R(RTREG); return true; - case 0x0f: // LUI + case 0x0f: // LUI desc.regout[0] |= REGFLAG_R(RTREG); return true; - case 0x1a: // LDL - case 0x1b: // LDR - case 0x22: // LWL - case 0x26: // LWR + case 0x1a: // LDL + case 0x1b: // LDR + case 0x22: // LWL + case 0x26: // LWR desc.regin[0] |= REGFLAG_R(RTREG); - case 0x20: // LB - case 0x21: // LH - case 0x23: // LW - case 0x24: // LBU - case 0x25: // LHU - case 0x27: // LWU - case 0x30: // LL - case 0x34: // LLD - case 0x37: // LD + case 0x20: // LB + case 0x21: // LH + case 0x23: // LW + case 0x24: // LBU + case 0x25: // LHU + case 0x27: // LWU + case 0x30: // LL + case 0x34: // LLD + case 0x37: // LD desc.regin[0] |= REGFLAG_R(RSREG); desc.regout[0] |= REGFLAG_R(RTREG); desc.flags |= OPFLAG_READS_MEMORY | OPFLAG_CAN_CAUSE_EXCEPTION; return true; - case 0x28: // SB - case 0x29: // SH - case 0x2a: // SWL - case 0x2b: // SW - case 0x2c: // SDL - case 0x2d: // SDR - case 0x2e: // SWR - case 0x3f: // SD + case 0x28: // SB + case 0x29: // SH + case 0x2a: // SWL + case 0x2b: // SW + case 0x2c: // SDL + case 0x2d: // SDR + case 0x2e: // SWR + case 0x3f: // SD desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); desc.flags |= OPFLAG_WRITES_MEMORY | OPFLAG_CAN_CAUSE_EXCEPTION; return true; - case 0x38: // SC - case 0x3c: // SCD + case 0x38: // SC + case 0x3c: // SCD desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); desc.regout[0] |= REGFLAG_R(RTREG); desc.flags |= OPFLAG_WRITES_MEMORY | OPFLAG_CAN_CAUSE_EXCEPTION; return true; - case 0x31: // LWC1 - case 0x35: // LDC1 + case 0x31: // LWC1 + case 0x35: // LDC1 desc.regin[0] |= REGFLAG_R(RSREG); desc.regout[1] |= REGFLAG_CPR1(RTREG); desc.flags |= OPFLAG_READS_MEMORY | OPFLAG_CAN_CAUSE_EXCEPTION; return true; - case 0x39: // SWC1 - case 0x3d: // SDC1 + case 0x39: // SWC1 + case 0x3d: // SDC1 desc.regin[0] |= REGFLAG_R(RSREG); desc.regin[1] |= REGFLAG_CPR1(RTREG); desc.flags |= OPFLAG_WRITES_MEMORY | OPFLAG_CAN_CAUSE_EXCEPTION; return true; - case 0x32: // LWC2 - case 0x36: // LDC2 + case 0x32: // LWC2 + case 0x36: // LDC2 desc.regin[0] |= REGFLAG_R(RSREG); desc.flags |= OPFLAG_READS_MEMORY | OPFLAG_CAN_CAUSE_EXCEPTION; return true; - case 0x3a: // SWC2 - case 0x3e: // SDC2 + case 0x3a: // SWC2 + case 0x3e: // SDC2 desc.regin[0] |= REGFLAG_R(RSREG); desc.flags |= OPFLAG_WRITES_MEMORY | OPFLAG_CAN_CAUSE_EXCEPTION; return true; - case 0x33: // PREF + case 0x33: // PREF if (m_context.flavor < MIPS3_TYPE_MIPS_IV) return false; - case 0x2f: // CACHE + case 0x2f: // CACHE // effective no-op return true; } @@ -263,64 +263,64 @@ bool mips3_frontend::describe_special(UINT32 op, opcode_desc &desc) { switch (op & 63) { - case 0x00: // SLL - case 0x02: // SRL - case 0x03: // SRA - case 0x38: // DSLL - case 0x3a: // DSRL - case 0x3b: // DSRA - case 0x3c: // DSLL32 - case 0x3e: // DSRL32 - case 0x3f: // DSRA32 + case 0x00: // SLL + case 0x02: // SRL + case 0x03: // SRA + case 0x38: // DSLL + case 0x3a: // DSRL + case 0x3b: // DSRA + case 0x3c: // DSLL32 + case 0x3e: // DSRL32 + case 0x3f: // DSRA32 desc.regin[0] |= REGFLAG_R(RTREG); desc.regout[0] |= REGFLAG_R(RDREG); return true; - case 0x0a: // MOVZ - MIPS IV - case 0x0b: // MOVN - MIPS IV + case 0x0a: // MOVZ - MIPS IV + case 0x0b: // MOVN - MIPS IV if (m_context.flavor < MIPS3_TYPE_MIPS_IV) return false; desc.regin[0] |= REGFLAG_R(RDREG); - case 0x04: // SLLV - case 0x06: // SRLV - case 0x07: // SRAV - case 0x14: // DSLLV - case 0x16: // DSRLV - case 0x17: // DSRAV - case 0x21: // ADDU - case 0x23: // SUBU - case 0x24: // AND - case 0x25: // OR - case 0x26: // XOR - case 0x27: // NOR - case 0x2a: // SLT - case 0x2b: // SLTU - case 0x2d: // DADDU - case 0x2f: // DSUBU + case 0x04: // SLLV + case 0x06: // SRLV + case 0x07: // SRAV + case 0x14: // DSLLV + case 0x16: // DSRLV + case 0x17: // DSRAV + case 0x21: // ADDU + case 0x23: // SUBU + case 0x24: // AND + case 0x25: // OR + case 0x26: // XOR + case 0x27: // NOR + case 0x2a: // SLT + case 0x2b: // SLTU + case 0x2d: // DADDU + case 0x2f: // DSUBU desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); desc.regout[0] |= REGFLAG_R(RDREG); return true; - case 0x20: // ADD - case 0x22: // SUB - case 0x2c: // DADD - case 0x2e: // DSUB + case 0x20: // ADD + case 0x22: // SUB + case 0x2c: // DADD + case 0x2e: // DSUB desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); desc.regout[0] |= REGFLAG_R(RDREG); desc.flags |= OPFLAG_CAN_CAUSE_EXCEPTION; return true; - case 0x30: // TGE - case 0x31: // TGEU - case 0x32: // TLT - case 0x33: // TLTU - case 0x34: // TEQ - case 0x36: // TNE + case 0x30: // TGE + case 0x31: // TGEU + case 0x32: // TLT + case 0x33: // TLTU + case 0x34: // TEQ + case 0x36: // TNE desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); desc.flags |= OPFLAG_CAN_CAUSE_EXCEPTION; return true; - case 0x01: // MOVF - MIPS IV + case 0x01: // MOVF - MIPS IV if (m_context.flavor < MIPS3_TYPE_MIPS_IV) return false; desc.regin[0] |= REGFLAG_R(RSREG); @@ -328,14 +328,14 @@ bool mips3_frontend::describe_special(UINT32 op, opcode_desc &desc) desc.regout[0] |= REGFLAG_R(RDREG); return true; - case 0x08: // JR + case 0x08: // JR desc.regin[0] |= REGFLAG_R(RSREG); desc.flags |= OPFLAG_IS_UNCONDITIONAL_BRANCH | OPFLAG_END_SEQUENCE; desc.targetpc = BRANCH_TARGET_DYNAMIC; desc.delayslots = 1; return true; - case 0x09: // JALR + case 0x09: // JALR desc.regin[0] |= REGFLAG_R(RSREG); desc.regout[0] |= REGFLAG_R(RDREG); desc.flags |= OPFLAG_IS_UNCONDITIONAL_BRANCH | OPFLAG_END_SEQUENCE; @@ -343,60 +343,60 @@ bool mips3_frontend::describe_special(UINT32 op, opcode_desc &desc) desc.delayslots = 1; return true; - case 0x10: // MFHI + case 0x10: // MFHI desc.regin[0] |= REGFLAG_HI; desc.regout[0] |= REGFLAG_R(RDREG); return true; - case 0x11: // MTHI + case 0x11: // MTHI desc.regin[0] |= REGFLAG_R(RSREG); desc.regout[0] |= REGFLAG_HI; return true; - case 0x12: // MFLO + case 0x12: // MFLO desc.regin[2] |= REGFLAG_LO; desc.regout[0] |= REGFLAG_R(RDREG); return true; - case 0x13: // MTLO + case 0x13: // MTLO desc.regin[0] |= REGFLAG_R(RSREG); desc.regout[2] |= REGFLAG_LO; return true; - case 0x18: // MULT - case 0x19: // MULTU + case 0x18: // MULT + case 0x19: // MULTU desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); desc.regout[2] |= REGFLAG_LO | REGFLAG_HI; desc.cycles = 3; return true; - case 0x1a: // DIV - case 0x1b: // DIVU + case 0x1a: // DIV + case 0x1b: // DIVU desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); desc.regout[2] |= REGFLAG_LO | REGFLAG_HI; desc.cycles = 35; return true; - case 0x1c: // DMULT - case 0x1d: // DMULTU + case 0x1c: // DMULT + case 0x1d: // DMULTU desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); desc.regout[2] |= REGFLAG_LO | REGFLAG_HI; desc.cycles = 7; return true; - case 0x1e: // DDIV - case 0x1f: // DDIVU + case 0x1e: // DDIV + case 0x1f: // DDIVU desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); desc.regout[2] |= REGFLAG_LO | REGFLAG_HI; desc.cycles = 67; return true; - case 0x0c: // SYSCALL - case 0x0d: // BREAK + case 0x0c: // SYSCALL + case 0x0d: // BREAK desc.flags |= OPFLAG_WILL_CAUSE_EXCEPTION | OPFLAG_END_SEQUENCE; return true; - case 0x0f: // SYNC + case 0x0f: // SYNC // effective no-op return true; } @@ -414,10 +414,10 @@ bool mips3_frontend::describe_regimm(UINT32 op, opcode_desc &desc) { switch (RTREG) { - case 0x00: // BLTZ - case 0x01: // BGEZ - case 0x02: // BLTZL - case 0x03: // BGEZL + case 0x00: // BLTZ + case 0x01: // BGEZ + case 0x02: // BLTZL + case 0x03: // BGEZL if (RTREG == 0x01 && RSREG == 0) desc.flags |= OPFLAG_IS_UNCONDITIONAL_BRANCH | OPFLAG_END_SEQUENCE; else @@ -430,20 +430,20 @@ bool mips3_frontend::describe_regimm(UINT32 op, opcode_desc &desc) desc.skipslots = (RTREG & 0x02) ? 1 : 0; return true; - case 0x08: // TGEI - case 0x09: // TGEIU - case 0x0a: // TLTI - case 0x0b: // TLTIU - case 0x0c: // TEQI - case 0x0e: // TNEI + case 0x08: // TGEI + case 0x09: // TGEIU + case 0x0a: // TLTI + case 0x0b: // TLTIU + case 0x0c: // TEQI + case 0x0e: // TNEI desc.regin[0] |= REGFLAG_R(RSREG); desc.flags |= OPFLAG_CAN_CAUSE_EXCEPTION; return true; - case 0x10: // BLTZAL - case 0x11: // BGEZAL - case 0x12: // BLTZALL - case 0x13: // BGEZALL + case 0x10: // BLTZAL + case 0x11: // BGEZAL + case 0x12: // BLTZALL + case 0x13: // BGEZALL if (RTREG == 0x11 && RSREG == 0) desc.flags |= OPFLAG_IS_UNCONDITIONAL_BRANCH | OPFLAG_END_SEQUENCE; else @@ -505,8 +505,8 @@ bool mips3_frontend::describe_cop0(UINT32 op, opcode_desc &desc) switch (RSREG) { - case 0x00: // MFCz - case 0x01: // DMFCz + case 0x00: // MFCz + case 0x01: // DMFCz if (RDREG == COP0_Count) desc.cycles += MIPS3_COUNT_READ_CYCLES; if (RDREG == COP0_Cause) @@ -514,13 +514,13 @@ bool mips3_frontend::describe_cop0(UINT32 op, opcode_desc &desc) desc.regout[0] |= REGFLAG_R(RTREG); return true; - case 0x02: // CFCz + case 0x02: // CFCz desc.regout[0] |= REGFLAG_R(RTREG); return true; - case 0x04: // MTCz - case 0x05: // DMTCz - case 0x06: // CTCz + case 0x04: // MTCz + case 0x05: // DMTCz + case 0x06: // CTCz desc.regin[0] |= REGFLAG_R(RTREG); if (RSREG == 0x04 || RSREG == 0x05) { @@ -531,11 +531,11 @@ bool mips3_frontend::describe_cop0(UINT32 op, opcode_desc &desc) } return true; - case 0x08: // BC + case 0x08: // BC switch (RTREG) { - case 0x00: // BCzF - case 0x01: // BCzT + case 0x00: // BCzF + case 0x01: // BCzT desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; desc.targetpc = desc.pc + 4 + (SIMMVAL << 2); desc.delayslots = 1; @@ -543,21 +543,21 @@ bool mips3_frontend::describe_cop0(UINT32 op, opcode_desc &desc) } return false; - case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: - case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f: // COP + case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: + case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f: // COP switch (op & 0x01ffffff) { - case 0x01: // TLBR - case 0x08: // TLBP - case 0x20: // WAIT + case 0x01: // TLBR + case 0x08: // TLBP + case 0x20: // WAIT return true; - case 0x02: // TLBWI - case 0x06: // TLBWR + case 0x02: // TLBWI + case 0x06: // TLBWR desc.flags |= OPFLAG_MODIFIES_TRANSLATION; return true; - case 0x18: // ERET + case 0x18: // ERET desc.flags |= OPFLAG_CAN_CHANGE_MODES | OPFLAG_IS_UNCONDITIONAL_BRANCH | OPFLAG_END_SEQUENCE; return true; } @@ -580,33 +580,33 @@ bool mips3_frontend::describe_cop1(UINT32 op, opcode_desc &desc) switch (RSREG) { - case 0x00: // MFCz - case 0x01: // DMFCz + case 0x00: // MFCz + case 0x01: // DMFCz desc.regin[1] |= REGFLAG_CPR1(RDREG); desc.regout[0] |= REGFLAG_R(RTREG); return true; - case 0x02: // CFCz + case 0x02: // CFCz desc.regout[0] |= REGFLAG_R(RTREG); return true; - case 0x04: // MTCz - case 0x05: // DMTCz + case 0x04: // MTCz + case 0x05: // DMTCz desc.regin[0] |= REGFLAG_R(RTREG); desc.regout[1] |= REGFLAG_CPR1(RDREG); return true; - case 0x06: // CTCz + case 0x06: // CTCz desc.regin[0] |= REGFLAG_R(RTREG); return true; - case 0x08: // BC + case 0x08: // BC switch (RTREG & 3) { - case 0x00: // BCzF - case 0x01: // BCzT - case 0x02: // BCzFL - case 0x03: // BCzTL + case 0x00: // BCzF + case 0x01: // BCzT + case 0x02: // BCzFL + case 0x03: // BCzTL desc.regin[2] |= REGFLAG_FCC; desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; desc.targetpc = desc.pc + 4 + (SIMMVAL << 2); @@ -616,47 +616,47 @@ bool mips3_frontend::describe_cop1(UINT32 op, opcode_desc &desc) } return false; - case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: - case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f: // COP + case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: + case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f: // COP switch (op & 0x3f) { - case 0x12: // MOVZ - MIPS IV - case 0x13: // MOVN - MIPS IV + case 0x12: // MOVZ - MIPS IV + case 0x13: // MOVN - MIPS IV if (m_context.flavor < MIPS3_TYPE_MIPS_IV) return false; - case 0x00: // ADD - case 0x01: // SUB - case 0x02: // MUL - case 0x03: // DIV + case 0x00: // ADD + case 0x01: // SUB + case 0x02: // MUL + case 0x03: // DIV desc.regin[1] |= REGFLAG_CPR1(FSREG) | REGFLAG_CPR1(FTREG); desc.regout[1] |= REGFLAG_CPR1(FDREG); return true; - case 0x15: // RECIP - MIPS IV - case 0x16: // RSQRT - MIPS IV + case 0x15: // RECIP - MIPS IV + case 0x16: // RSQRT - MIPS IV if (m_context.flavor < MIPS3_TYPE_MIPS_IV) return false; - case 0x04: // SQRT - case 0x05: // ABS - case 0x06: // MOV - case 0x07: // NEG - case 0x08: // ROUND.L - case 0x09: // TRUNC.L - case 0x0a: // CEIL.L - case 0x0b: // FLOOR.L - case 0x0c: // ROUND.W - case 0x0d: // TRUNC.W - case 0x0e: // CEIL.W - case 0x0f: // FLOOR.W - case 0x20: // CVT.S - case 0x21: // CVT.D - case 0x24: // CVT.W - case 0x25: // CVT.L + case 0x04: // SQRT + case 0x05: // ABS + case 0x06: // MOV + case 0x07: // NEG + case 0x08: // ROUND.L + case 0x09: // TRUNC.L + case 0x0a: // CEIL.L + case 0x0b: // FLOOR.L + case 0x0c: // ROUND.W + case 0x0d: // TRUNC.W + case 0x0e: // CEIL.W + case 0x0f: // FLOOR.W + case 0x20: // CVT.S + case 0x21: // CVT.D + case 0x24: // CVT.W + case 0x25: // CVT.L desc.regin[1] |= REGFLAG_CPR1(FSREG); desc.regout[1] |= REGFLAG_CPR1(FDREG); return true; - case 0x11: // MOVT/F - MIPS IV + case 0x11: // MOVT/F - MIPS IV if (m_context.flavor < MIPS3_TYPE_MIPS_IV) return false; desc.regin[1] |= REGFLAG_CPR1(FSREG); @@ -664,17 +664,17 @@ bool mips3_frontend::describe_cop1(UINT32 op, opcode_desc &desc) desc.regout[1] |= REGFLAG_CPR1(FDREG); return true; - case 0x30: case 0x38: // C.F - case 0x31: case 0x39: // C.UN + case 0x30: case 0x38: // C.F + case 0x31: case 0x39: // C.UN desc.regout[2] |= REGFLAG_FCC; return true; - case 0x32: case 0x3a: // C.EQ - case 0x33: case 0x3b: // C.UEQ - case 0x34: case 0x3c: // C.OLT - case 0x35: case 0x3d: // C.ULT - case 0x36: case 0x3e: // C.OLE - case 0x37: case 0x3f: // C.ULE + case 0x32: case 0x3a: // C.EQ + case 0x33: case 0x3b: // C.UEQ + case 0x34: case 0x3c: // C.OLT + case 0x35: case 0x3d: // C.ULT + case 0x36: case 0x3e: // C.OLE + case 0x37: case 0x3f: // C.ULE desc.regin[1] |= REGFLAG_CPR1(FSREG) | REGFLAG_CPR1(FTREG); desc.regout[2] |= REGFLAG_FCC; return true; @@ -698,28 +698,28 @@ bool mips3_frontend::describe_cop1x(UINT32 op, opcode_desc &desc) switch (op & 0x3f) { - case 0x00: // LWXC1 - case 0x01: // LDXC1 + case 0x00: // LWXC1 + case 0x01: // LDXC1 desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); desc.regout[1] |= REGFLAG_CPR1(FDREG); desc.flags |= OPFLAG_READS_MEMORY; return true; - case 0x08: // SWXC1 - case 0x09: // SDXC1 + case 0x08: // SWXC1 + case 0x09: // SDXC1 desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); desc.regin[1] |= REGFLAG_CPR1(FDREG); desc.flags |= OPFLAG_WRITES_MEMORY; return true; - case 0x0f: // PREFX + case 0x0f: // PREFX // effective no-op return true; - case 0x20: case 0x21: // MADD - case 0x28: case 0x29: // MSUB - case 0x30: case 0x31: // NMADD - case 0x38: case 0x39: // NMSUB + case 0x20: case 0x21: // MADD + case 0x28: case 0x29: // MSUB + case 0x30: case 0x31: // NMADD + case 0x38: case 0x39: // NMSUB desc.regin[1] |= REGFLAG_CPR1(FSREG) | REGFLAG_CPR1(FTREG) | REGFLAG_CPR1(FRREG); desc.regout[1] |= REGFLAG_CPR1(FDREG); return true; @@ -741,23 +741,23 @@ bool mips3_frontend::describe_cop2(UINT32 op, opcode_desc &desc) switch (RSREG) { - case 0x00: // MFCz - case 0x01: // DMFCz - case 0x02: // CFCz + case 0x00: // MFCz + case 0x01: // DMFCz + case 0x02: // CFCz desc.regout[0] |= REGFLAG_R(RTREG); return true; - case 0x04: // MTCz - case 0x05: // DMTCz - case 0x06: // CTCz + case 0x04: // MTCz + case 0x05: // DMTCz + case 0x06: // CTCz desc.regin[0] |= REGFLAG_R(RTREG); return true; - case 0x08: // BC + case 0x08: // BC switch (RTREG) { - case 0x00: // BCzF - case 0x01: // BCzT + case 0x00: // BCzF + case 0x01: // BCzT desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; desc.targetpc = desc.pc + 4 + (SIMMVAL << 2); desc.delayslots = 1; |