[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3] target/ppc: Fix carry flag setting for shift
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH v3] target/ppc: Fix carry flag setting for shift algebraic instructions |
Date: |
Thu, 5 Oct 2017 08:42:56 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
On 10/03/2017 02:23 AM, Sandipan Das wrote:
> @@ -231,6 +231,10 @@ target_ulong helper_sraw(CPUPPCState *env, target_ulong
> value,
> ret = (int32_t)value >> 31;
> env->ca = (ret != 0);
> }
> +
> + /* update CA32 for ISA v3.0 */
> + env->ca32 = env->ca;
As I said before, modify ca32 only when ca is modified.
E.g.
env->ca32 = env->ca = (ret != 0);
> @@ -257,6 +261,10 @@ target_ulong helper_srad(CPUPPCState *env, target_ulong
> value,
> ret = (int64_t)value >> 63;
> env->ca = (ret != 0);
> }
> +
> + /* update CA32 for ISA v3.0 */
> + env->ca32 = env->ca;
Likewise.
> @@ -2192,6 +2192,10 @@ static void gen_srawi(DisasContext *ctx)
> tcg_gen_setcondi_tl(TCG_COND_NE, cpu_ca, cpu_ca, 0);
> tcg_gen_sari_tl(dst, dst, sh);
> }
> +
> + /* update CA32 for ISA v3.0 */
> + tcg_gen_mov_tl(cpu_ca32, cpu_ca);
Likewise.
> @@ -2269,6 +2273,10 @@ static inline void gen_sradi(DisasContext *ctx, int n)
> tcg_gen_setcondi_tl(TCG_COND_NE, cpu_ca, cpu_ca, 0);
> tcg_gen_sari_tl(dst, src, sh);
> }
> +
> + /* update CA32 for ISA v3.0 */
> + tcg_gen_mov_tl(cpu_ca32, cpu_ca);
Likewise.
r~