diff mbox series

[2/7] target/alpha: Fix SWCR_MAP_UMZ

Message ID 20190921043256.4575-3-richard.henderson@linaro.org
State Superseded
Headers show
Series target/alpha: Fix linux-user exception for CVTTQ | expand

Commit Message

Richard Henderson Sept. 21, 2019, 4:32 a.m. UTC
We were setting the wrong bit.  The fp_status.flush_to_zero
setting is overwritten by either the constant 1 or the value
of fpcr_flush_to_zero depending on bits within an fp insn.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 target/alpha/helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.17.1

Comments

Alex Bennée Sept. 23, 2019, 4:33 p.m. UTC | #1
Richard Henderson <richard.henderson@linaro.org> writes:

> We were setting the wrong bit.  The fp_status.flush_to_zero

> setting is overwritten


".. in the generated code.."?

> by either the constant 1 or the value

> of fpcr_flush_to_zero depending on bits within an fp insn.

>

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Reviewed-by: Alex Bennée <alex.bennee@linaro.org>


> ---

>  target/alpha/helper.c | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

>

> diff --git a/target/alpha/helper.c b/target/alpha/helper.c

> index 6c1703682e..10602fb339 100644

> --- a/target/alpha/helper.c

> +++ b/target/alpha/helper.c

> @@ -71,7 +71,7 @@ void cpu_alpha_store_fpcr(CPUAlphaState *env, uint64_t val)

>          env->fp_status.flush_inputs_to_zero = 1;

>      }

>      if (env->swcr & SWCR_MAP_UMZ) {

> -        env->fp_status.flush_to_zero = 1;

> +        env->fpcr_flush_to_zero = 1;

>      }

>      env->fpcr_exc_enable &= ~(alpha_ieee_swcr_to_fpcr(env->swcr) >> 32);

>  #endif



--
Alex Bennée
diff mbox series

Patch

diff --git a/target/alpha/helper.c b/target/alpha/helper.c
index 6c1703682e..10602fb339 100644
--- a/target/alpha/helper.c
+++ b/target/alpha/helper.c
@@ -71,7 +71,7 @@  void cpu_alpha_store_fpcr(CPUAlphaState *env, uint64_t val)
         env->fp_status.flush_inputs_to_zero = 1;
     }
     if (env->swcr & SWCR_MAP_UMZ) {
-        env->fp_status.flush_to_zero = 1;
+        env->fpcr_flush_to_zero = 1;
     }
     env->fpcr_exc_enable &= ~(alpha_ieee_swcr_to_fpcr(env->swcr) >> 32);
 #endif