diff --git a/qemu/target/m68k/translate.c b/qemu/target/m68k/translate.c index 094d904a..7a4e07a5 100644 --- a/qemu/target/m68k/translate.c +++ b/qemu/target/m68k/translate.c @@ -1786,8 +1786,7 @@ static void bcd_flags(DisasContext *s, TCGv val) tcg_gen_andi_i32(tcg_ctx, QREG_CC_C, val, 0x0ff); tcg_gen_or_i32(tcg_ctx, QREG_CC_Z, QREG_CC_Z, QREG_CC_C); - tcg_gen_shri_i32(tcg_ctx, QREG_CC_C, val, 8); - tcg_gen_andi_i32(tcg_ctx, QREG_CC_C, QREG_CC_C, 1); + tcg_gen_extract_i32(tcg_ctx, QREG_CC_C, val, 8, 1); tcg_gen_mov_i32(tcg_ctx, QREG_CC_X, QREG_CC_C); }