Re: [Qemu-devel] [PATCH] target-i386: Fix CC_OP_CLR vs PF
Quoting Richard Henderson (2014-01-10 14:39:56) Parity should be set for a zero result. Signed-off-by: Richard Henderson r...@twiddle.net ping for 1.7.1 --- target-i386/cc_helper.c | 2 +- target-i386/translate.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target-i386/cc_helper.c b/target-i386/cc_helper.c index ee04092..05dd12b 100644 --- a/target-i386/cc_helper.c +++ b/target-i386/cc_helper.c @@ -103,7 +103,7 @@ target_ulong helper_cc_compute_all(target_ulong dst, target_ulong src1, case CC_OP_EFLAGS: return src1; case CC_OP_CLR: -return CC_Z; +return CC_Z | CC_P; case CC_OP_MULB: return compute_all_mulb(dst, src1); diff --git a/target-i386/translate.c b/target-i386/translate.c index b0f2279..34f35e7 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -748,7 +748,7 @@ static void gen_compute_eflags(DisasContext *s) return; } if (s-cc_op == CC_OP_CLR) { -tcg_gen_movi_tl(cpu_cc_src, CC_Z); +tcg_gen_movi_tl(cpu_cc_src, CC_Z | CC_P); set_cc_op(s, CC_OP_EFLAGS); return; } -- 1.8.4.2
Re: [Qemu-devel] [PATCH] target-i386: Fix CC_OP_CLR vs PF
On Fri, Jan 10, 2014 at 12:39:56PM -0800, Richard Henderson wrote: Parity should be set for a zero result. Signed-off-by: Richard Henderson r...@twiddle.net Reviewed-by: Edgar E. Iglesias edgar.igles...@xilinx.com --- target-i386/cc_helper.c | 2 +- target-i386/translate.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target-i386/cc_helper.c b/target-i386/cc_helper.c index ee04092..05dd12b 100644 --- a/target-i386/cc_helper.c +++ b/target-i386/cc_helper.c @@ -103,7 +103,7 @@ target_ulong helper_cc_compute_all(target_ulong dst, target_ulong src1, case CC_OP_EFLAGS: return src1; case CC_OP_CLR: -return CC_Z; +return CC_Z | CC_P; case CC_OP_MULB: return compute_all_mulb(dst, src1); diff --git a/target-i386/translate.c b/target-i386/translate.c index b0f2279..34f35e7 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -748,7 +748,7 @@ static void gen_compute_eflags(DisasContext *s) return; } if (s-cc_op == CC_OP_CLR) { -tcg_gen_movi_tl(cpu_cc_src, CC_Z); +tcg_gen_movi_tl(cpu_cc_src, CC_Z | CC_P); set_cc_op(s, CC_OP_EFLAGS); return; } -- 1.8.4.2
Re: [Qemu-devel] [PATCH] target-i386: Fix CC_OP_CLR vs PF
Il 10/01/2014 21:39, Richard Henderson ha scritto: Parity should be set for a zero result. Signed-off-by: Richard Henderson r...@twiddle.net --- target-i386/cc_helper.c | 2 +- target-i386/translate.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target-i386/cc_helper.c b/target-i386/cc_helper.c index ee04092..05dd12b 100644 --- a/target-i386/cc_helper.c +++ b/target-i386/cc_helper.c @@ -103,7 +103,7 @@ target_ulong helper_cc_compute_all(target_ulong dst, target_ulong src1, case CC_OP_EFLAGS: return src1; case CC_OP_CLR: -return CC_Z; +return CC_Z | CC_P; case CC_OP_MULB: return compute_all_mulb(dst, src1); diff --git a/target-i386/translate.c b/target-i386/translate.c index b0f2279..34f35e7 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -748,7 +748,7 @@ static void gen_compute_eflags(DisasContext *s) return; } if (s-cc_op == CC_OP_CLR) { -tcg_gen_movi_tl(cpu_cc_src, CC_Z); +tcg_gen_movi_tl(cpu_cc_src, CC_Z | CC_P); set_cc_op(s, CC_OP_EFLAGS); return; } Reviewed-by: Paolo Bonzini pbonz...@redhat.com
[Qemu-devel] [PATCH] target-i386: Fix CC_OP_CLR vs PF
Parity should be set for a zero result. Signed-off-by: Richard Henderson r...@twiddle.net --- target-i386/cc_helper.c | 2 +- target-i386/translate.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target-i386/cc_helper.c b/target-i386/cc_helper.c index ee04092..05dd12b 100644 --- a/target-i386/cc_helper.c +++ b/target-i386/cc_helper.c @@ -103,7 +103,7 @@ target_ulong helper_cc_compute_all(target_ulong dst, target_ulong src1, case CC_OP_EFLAGS: return src1; case CC_OP_CLR: -return CC_Z; +return CC_Z | CC_P; case CC_OP_MULB: return compute_all_mulb(dst, src1); diff --git a/target-i386/translate.c b/target-i386/translate.c index b0f2279..34f35e7 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -748,7 +748,7 @@ static void gen_compute_eflags(DisasContext *s) return; } if (s-cc_op == CC_OP_CLR) { -tcg_gen_movi_tl(cpu_cc_src, CC_Z); +tcg_gen_movi_tl(cpu_cc_src, CC_Z | CC_P); set_cc_op(s, CC_OP_EFLAGS); return; } -- 1.8.4.2