DISAS_INSN(divl)

{

    TCGv num;

    TCGv den;

    TCGv reg;

    uint16_t ext;



    ext = read_im16(env, s);

    if (ext & 0x87f8) {

        gen_exception(s, s->pc - 4, EXCP_UNSUPPORTED);

        return;

    }

    num = DREG(ext, 12);

    reg = DREG(ext, 0);

    tcg_gen_mov_i32(QREG_DIV1, num);

    SRC_EA(env, den, OS_LONG, 0, NULL);

    tcg_gen_mov_i32(QREG_DIV2, den);

    if (ext & 0x0800) {

        gen_helper_divs(cpu_env, tcg_const_i32(0));

    } else {

        gen_helper_divu(cpu_env, tcg_const_i32(0));

    }

    if ((ext & 7) == ((ext >> 12) & 7)) {

        /* div */

        tcg_gen_mov_i32 (reg, QREG_DIV1);

    } else {

        /* rem */

        tcg_gen_mov_i32 (reg, QREG_DIV2);

    }

    set_cc_op(s, CC_OP_FLAGS);

}

DISAS_INSN(divl)

{

    TCGv num;

    TCGv den;

    TCGv reg;

    uint16_t ext;



    ext = read_im16(env, s);

    if (ext & 0x87f8) {

        gen_exception(s, s->pc - 4, EXCP_UNSUPPORTED);

        return;

    }

    num = DREG(ext, 12);

    reg = DREG(ext, 0);

    tcg_gen_mov_i32(QREG_DIV1, num);

    SRC_EA(env, den, OS_LONG, 0, NULL);

    tcg_gen_mov_i32(QREG_DIV2, den);

    if (ext & 0x0800) {

        gen_helper_divs(cpu_env, tcg_const_i32(0));

    } else {

        gen_helper_divu(cpu_env, tcg_const_i32(0));

    }

    if ((ext & 7) == ((ext >> 12) & 7)) {

        

        tcg_gen_mov_i32 (reg, QREG_DIV1);

    } else {

        

        tcg_gen_mov_i32 (reg, QREG_DIV2);

    }

    set_cc_op(s, CC_OP_FLAGS);

}

    TCGv reg;     } else {     TCGv num;     TCGv den;     TCGv reg;     if (ext & 0x87f8) {         gen_exception(s, s->pc - 4, EXCP_UNSUPPORTED);     num = DREG(ext, 12);     reg = DREG(ext, 0);     tcg_gen_mov_i32(QREG_DIV1, num);     tcg_gen_mov_i32(QREG_DIV2, den);     if (ext & 0x0800) {         gen_helper_divs(cpu_env, tcg_const_i32(0));     } else {         gen_helper_divu(cpu_env, tcg_const_i32(0));     if ((ext & 7) == ((ext >> 12) & 7)) {         tcg_gen_mov_i32 (reg, QREG_DIV1);         tcg_gen_mov_i32 (reg, QREG_DIV2);
FUNC_0(VAR_0)

{

    TCGv num;

    TCGv den;

    TCGv reg;

    uint16_t ext;



    ext = read_im16(env, s);

    if (ext & 0x87f8) {

        gen_exception(s, s->pc - 4, EXCP_UNSUPPORTED);

        return;

    }

    num = DREG(ext, 12);

    reg = DREG(ext, 0);

    tcg_gen_mov_i32(QREG_DIV1, num);

    SRC_EA(env, den, OS_LONG, 0, NULL);

    tcg_gen_mov_i32(QREG_DIV2, den);

    if (ext & 0x0800) {

        gen_helper_divs(cpu_env, tcg_const_i32(0));

    } else {

        gen_helper_divu(cpu_env, tcg_const_i32(0));

    }

    if ((ext & 7) == ((ext >> 12) & 7)) {

        

        tcg_gen_mov_i32 (reg, QREG_DIV1);

    } else {

        

        tcg_gen_mov_i32 (reg, QREG_DIV2);

    }

    set_cc_op(s, CC_OP_FLAGS);

}

FUNC_0(VAR_0)
{ TCGv num; TCGv den; TCGv reg; uint16_t ext; ext = read_im16(env, s); if (ext & 0x87f8) { gen_exception(s, s->pc - 4, EXCP_UNSUPPORTED); return; } num = DREG(ext, 12); reg = DREG(ext, 0); tcg_gen_mov_i32(QREG_DIV1, num); SRC_EA(env, den, OS_LONG, 0, NULL); tcg_gen_mov_i32(QREG_DIV2, den); if (ext & 0x0800) { gen_helper_divs(cpu_env, tcg_const_i32(0)); } else { gen_helper_divu(cpu_env, tcg_const_i32(0)); } if ((ext & 7) == ((ext >> 12) & 7)) { tcg_gen_mov_i32 (reg, QREG_DIV1); } else { tcg_gen_mov_i32 (reg, QREG_DIV2); } set_cc_op(s, CC_OP_FLAGS); }