Le 11/11/2016 à 22:25, Laurent Vivier a écrit :
> --- a/target-m68k/translate.c
> +++ b/target-m68k/translate.c
> +DISAS_INSN(rotate16_im)
> +{
> +    int left = (insn & 0x100);
> +    TCGv reg;
> +    TCGv shift;
> +    int tmp;
> +
> +    reg = gen_extend(DREG(insn, 0), OS_WORD, 0);
> +    tmp = (insn >> 9) & 7;
> +    if (tmp == 0) {
> +        tmp = 8;
> +    }
> +
> +    shift = tcg_const_i32(tmp);
> +    if (insn & 8) {
> +        rotate(reg, shift, left, 16);
> +    } else {
> +        TCGv X = rotate_x(reg, shift, left, 16);
> +        rotate_x_flags(reg, X, 8);

Must be:

        rotate_x_flags(reg, X, 16);

> +        tcg_temp_free(X);
> +    }
> +    tcg_temp_free(shift);
> +    gen_partset_reg(OS_WORD, DREG(insn, 0), reg);
> +    set_cc_op(s, CC_OP_FLAGS);
> +}

Thanks,
Laurent

Reply via email to