mirror of https://github.com/xqemu/xqemu.git
target/mips: Support R5900 DIV1 and DIVU1 instructions
Add support for DIV1 and DIVU1 instructions. Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com> Signed-off-by: Fredrik Noring <noring@nocrew.org> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
This commit is contained in:
parent
8d927f7cb4
commit
be9c42c90d
|
@ -4593,11 +4593,14 @@ static void gen_muldiv(DisasContext *ctx, uint32_t opc,
|
||||||
gen_load_gpr(t1, rt);
|
gen_load_gpr(t1, rt);
|
||||||
|
|
||||||
if (acc != 0) {
|
if (acc != 0) {
|
||||||
check_dsp(ctx);
|
if (!(ctx->insn_flags & INSN_R5900)) {
|
||||||
|
check_dsp(ctx);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (opc) {
|
switch (opc) {
|
||||||
case OPC_DIV:
|
case OPC_DIV:
|
||||||
|
case TX79_MMI_DIV1:
|
||||||
{
|
{
|
||||||
TCGv t2 = tcg_temp_new();
|
TCGv t2 = tcg_temp_new();
|
||||||
TCGv t3 = tcg_temp_new();
|
TCGv t3 = tcg_temp_new();
|
||||||
|
@ -4619,6 +4622,7 @@ static void gen_muldiv(DisasContext *ctx, uint32_t opc,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OPC_DIVU:
|
case OPC_DIVU:
|
||||||
|
case TX79_MMI_DIVU1:
|
||||||
{
|
{
|
||||||
TCGv t2 = tcg_const_tl(0);
|
TCGv t2 = tcg_const_tl(0);
|
||||||
TCGv t3 = tcg_const_tl(1);
|
TCGv t3 = tcg_const_tl(1);
|
||||||
|
@ -24665,6 +24669,10 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
|
||||||
case TX79_MMI_MULTU1:
|
case TX79_MMI_MULTU1:
|
||||||
gen_mul_txx9(ctx, opc, rd, rs, rt);
|
gen_mul_txx9(ctx, opc, rd, rs, rt);
|
||||||
break;
|
break;
|
||||||
|
case TX79_MMI_DIV1:
|
||||||
|
case TX79_MMI_DIVU1:
|
||||||
|
gen_muldiv(ctx, opc, 1, rs, rt);
|
||||||
|
break;
|
||||||
case TX79_MMI_MTLO1:
|
case TX79_MMI_MTLO1:
|
||||||
case TX79_MMI_MTHI1:
|
case TX79_MMI_MTHI1:
|
||||||
gen_HILO(ctx, opc, 1, rs);
|
gen_HILO(ctx, opc, 1, rs);
|
||||||
|
@ -24676,8 +24684,6 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
|
||||||
case TX79_MMI_MADD: /* TODO: TX79_MMI_MADD */
|
case TX79_MMI_MADD: /* TODO: TX79_MMI_MADD */
|
||||||
case TX79_MMI_MADDU: /* TODO: TX79_MMI_MADDU */
|
case TX79_MMI_MADDU: /* TODO: TX79_MMI_MADDU */
|
||||||
case TX79_MMI_PLZCW: /* TODO: TX79_MMI_PLZCW */
|
case TX79_MMI_PLZCW: /* TODO: TX79_MMI_PLZCW */
|
||||||
case TX79_MMI_DIV1: /* TODO: TX79_MMI_DIV1 */
|
|
||||||
case TX79_MMI_DIVU1: /* TODO: TX79_MMI_DIVU1 */
|
|
||||||
case TX79_MMI_MADD1: /* TODO: TX79_MMI_MADD1 */
|
case TX79_MMI_MADD1: /* TODO: TX79_MMI_MADD1 */
|
||||||
case TX79_MMI_MADDU1: /* TODO: TX79_MMI_MADDU1 */
|
case TX79_MMI_MADDU1: /* TODO: TX79_MMI_MADDU1 */
|
||||||
case TX79_MMI_PMFHL: /* TODO: TX79_MMI_PMFHL */
|
case TX79_MMI_PMFHL: /* TODO: TX79_MMI_PMFHL */
|
||||||
|
|
Loading…
Reference in New Issue