From 2bcdb40bd3e0f91fc202d43341dfba87c1181727 Mon Sep 17 00:00:00 2001 From: Dhruv Maroo Date: Mon, 23 Jan 2023 15:47:31 +0530 Subject: [PATCH] Set eflags after shift instruction --- librz/analysis/arch/x86/x86_il.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/librz/analysis/arch/x86/x86_il.c b/librz/analysis/arch/x86/x86_il.c index 0bb093f49d..0d122f521c 100644 --- a/librz/analysis/arch/x86/x86_il.c +++ b/librz/analysis/arch/x86/x86_il.c @@ -3114,7 +3114,7 @@ IL_LIFTER(sal) { RzILOpBool *cond = EQ(VARL("_masked"), UN(count_size, 1)); RzILOpEffect *set_overflow = SETG(EFLAGS(OF), XOR(MSB(VARL("_dest")), VARG(EFLAGS(CF)))); - return SEQ3(ret, BRANCH(cond, set_overflow, NULL), x86_il_set_op(0, VARL("_dest"))); + return SEQ4(ret, BRANCH(cond, set_overflow, NULL), x86_il_set_op(0, VARL("_dest")), x86_il_set_result_flags(VARL("_dest"))); } /** @@ -3134,7 +3134,7 @@ IL_LIFTER(sar) { RzILOpBool *cond = EQ(VARL("_masked"), UN(count_size, 1)); RzILOpEffect *set_overflow = SETG(EFLAGS(OF), IL_FALSE); - return SEQ3(ret, BRANCH(cond, set_overflow, NULL), x86_il_set_op(0, VARL("_dest"))); + return SEQ4(ret, BRANCH(cond, set_overflow, NULL), x86_il_set_op(0, VARL("_dest")), x86_il_set_result_flags(VARL("_dest"))); } /** @@ -3155,7 +3155,7 @@ IL_LIFTER(shl) { RzILOpBool *cond = EQ(VARL("_masked"), UN(count_size, 1)); RzILOpEffect *set_overflow = SETG(EFLAGS(OF), XOR(MSB(VARL("_dest")), VARG(EFLAGS(CF)))); - return SEQ3(ret, BRANCH(cond, set_overflow, NULL), x86_il_set_op(0, VARL("_dest"))); + return SEQ4(ret, BRANCH(cond, set_overflow, NULL), x86_il_set_op(0, VARL("_dest")), x86_il_set_result_flags(VARL("_dest"))); } /** @@ -3175,7 +3175,7 @@ IL_LIFTER(shr) { RzILOpBool *cond = EQ(VARL("_masked"), UN(count_size, 1)); RzILOpEffect *set_overflow = SETG(EFLAGS(OF), MSB(VARL("_tmp_dest"))); - return SEQ3(ret, BRANCH(cond, set_overflow, NULL), x86_il_set_op(0, VARL("_dest"))); + return SEQ4(ret, BRANCH(cond, set_overflow, NULL), x86_il_set_op(0, VARL("_dest")), x86_il_set_result_flags(VARL("_dest"))); } /**