This patch is correct:
$ docker run -it -v `pwd`:`pwd` -w `pwd` petersenna/coccinelle --sp-file
scripts/coccinelle/tcg_gen_extract.cocci --macro-file
scripts/cocci-macro-file.h --dir target/m68k
init_defs_builtins: /usr/lib64/coccinelle/standard.h
init_defs: scripts/cocci-macro-file.h
HANDLING: target/m68k/helper.c
HANDLING: target/m68k/gdbstub.c
HANDLING: target/m68k/translate.c
candidate at target/m68k/translate.c:1466
op_size: i32/i32 (same)
low_bits: 1 (value: 0x1)
len: 0x1
len_bits == low_bits
candidate IS optimizable
On 05/11/2017 05:41 AM, Laurent Vivier wrote:
Le 10/05/2017 à 22:05, Philippe Mathieu-Daudé a écrit :
Applied using Coccinelle script.
Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
---
target/m68k/translate.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/target/m68k/translate.c b/target/m68k/translate.c
index 9f60fbc0db..babb9e2c5b 100644
--- a/target/m68k/translate.c
+++ b/target/m68k/translate.c
@@ -1463,8 +1463,7 @@ static void bcd_flags(TCGv val)
tcg_gen_andi_i32(QREG_CC_C, val, 0x0ff);
tcg_gen_or_i32(QREG_CC_Z, QREG_CC_Z, QREG_CC_C);
- tcg_gen_shri_i32(QREG_CC_C, val, 8);
- tcg_gen_andi_i32(QREG_CC_C, QREG_CC_C, 1);
+ tcg_gen_extract_i32(QREG_CC_C, val, 8, 1);
tcg_gen_mov_i32(QREG_CC_X, QREG_CC_C);
}
Acked-by: Laurent Vivier <laur...@vivier.eu>
Thanks!