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