[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status |
Date: |
Fri, 1 Apr 2011 21:29:03 +0300 |
On Fri, Apr 1, 2011 at 5:30 PM, Peter Maydell <address@hidden> wrote:
> Make the Neon helper routines use the correct FP status from
> the CPUEnv rather than using a dummy static one. This means
> they will correctly handle denormals and NaNs and will set
> FPSCR exception bits properly.
>
> Signed-off-by: Peter Maydell <address@hidden>
> ---
> target-arm/helpers.h | 22 +++++++++++-----------
> target-arm/neon_helper.c | 21 ++++++++++-----------
> target-arm/translate.c | 42 ++++++++++++++++++++++--------------------
> 3 files changed, 43 insertions(+), 42 deletions(-)
>
> diff --git a/target-arm/helpers.h b/target-arm/helpers.h
> index bd6977c..e2260b6 100644
> --- a/target-arm/helpers.h
> +++ b/target-arm/helpers.h
> @@ -350,17 +350,17 @@ DEF_HELPER_2(neon_qneg_s8, i32, env, i32)
> DEF_HELPER_2(neon_qneg_s16, i32, env, i32)
> DEF_HELPER_2(neon_qneg_s32, i32, env, i32)
>
> -DEF_HELPER_2(neon_min_f32, i32, i32, i32)
> -DEF_HELPER_2(neon_max_f32, i32, i32, i32)
> -DEF_HELPER_2(neon_abd_f32, i32, i32, i32)
> -DEF_HELPER_2(neon_add_f32, i32, i32, i32)
> -DEF_HELPER_2(neon_sub_f32, i32, i32, i32)
> -DEF_HELPER_2(neon_mul_f32, i32, i32, i32)
> -DEF_HELPER_2(neon_ceq_f32, i32, i32, i32)
> -DEF_HELPER_2(neon_cge_f32, i32, i32, i32)
> -DEF_HELPER_2(neon_cgt_f32, i32, i32, i32)
> -DEF_HELPER_2(neon_acge_f32, i32, i32, i32)
> -DEF_HELPER_2(neon_acgt_f32, i32, i32, i32)
> +DEF_HELPER_3(neon_min_f32, i32, env, i32, i32)
> +DEF_HELPER_3(neon_max_f32, i32, env, i32, i32)
> +DEF_HELPER_3(neon_abd_f32, i32, env, i32, i32)
> +DEF_HELPER_3(neon_add_f32, i32, env, i32, i32)
> +DEF_HELPER_3(neon_sub_f32, i32, env, i32, i32)
> +DEF_HELPER_3(neon_mul_f32, i32, env, i32, i32)
> +DEF_HELPER_3(neon_ceq_f32, i32, env, i32, i32)
> +DEF_HELPER_3(neon_cge_f32, i32, env, i32, i32)
> +DEF_HELPER_3(neon_cgt_f32, i32, env, i32, i32)
> +DEF_HELPER_3(neon_acge_f32, i32, env, i32, i32)
> +DEF_HELPER_3(neon_acgt_f32, i32, env, i32, i32)
>
> /* iwmmxt_helper.c */
> DEF_HELPER_2(iwmmxt_maddsq, i64, i64, i64)
> diff --git a/target-arm/neon_helper.c b/target-arm/neon_helper.c
> index 002a9c1..97bc1e6 100644
> --- a/target-arm/neon_helper.c
> +++ b/target-arm/neon_helper.c
> @@ -18,8 +18,7 @@
>
> #define SET_QC() env->vfp.xregs[ARM_VFP_FPSCR] = CPSR_Q
>
> -static float_status neon_float_status;
> -#define NFS &neon_float_status
> +#define NFS (&env->vfp.standard_fp_status)
>
> /* Helper routines to perform bitwise copies between float and int. */
> static inline float32 vfp_itos(uint32_t i)
> @@ -1794,21 +1793,21 @@ uint32_t HELPER(neon_qneg_s32)(CPUState *env,
> uint32_t x)
> }
>
> /* NEON Float helpers. */
> -uint32_t HELPER(neon_min_f32)(uint32_t a, uint32_t b)
> +uint32_t HELPER(neon_min_f32)(CPUState *env, uint32_t a, uint32_t b)
I didn't check, but if neon_helper.c is compiled like op_helper.c,
passing env should not be needed. If that is not the case, the
functions could be moved to op_helper.c.
- [Qemu-devel] [PATCH 00/10] [PULL] ARM Neon fixes, Peter Maydell, 2011/04/01
- [Qemu-devel] [PATCH 09/10] target-arm: Don't leak TCG temp for UNDEFs in Neon load/store space, Peter Maydell, 2011/04/01
- [Qemu-devel] [PATCH 02/10] target-arm/neon_helper.c: Use make_float32/float32_val macros, Peter Maydell, 2011/04/01
- [Qemu-devel] [PATCH 06/10] softfloat: Add float*_min() and float*_max() functions, Peter Maydell, 2011/04/01
- [Qemu-devel] [PATCH 07/10] target-arm: Use new softfloat min/max functions for VMAX, VMIN, Peter Maydell, 2011/04/01
- [Qemu-devel] [PATCH 10/10] target-arm/helper.c: For float-int conversion helpers pass ints as ints, Peter Maydell, 2011/04/01
- [Qemu-devel] [PATCH 04/10] target-arm: Fix VCLE.F32 #0, VCLT.F32 #0 NaN handling, Peter Maydell, 2011/04/01
- [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Peter Maydell, 2011/04/01
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status,
Blue Swirl <=
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Peter Maydell, 2011/04/01
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Blue Swirl, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Peter Maydell, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Blue Swirl, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Peter Maydell, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Blue Swirl, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Aurelien Jarno, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Peter Maydell, 2011/04/03
- Re: [Qemu-devel] [PATCH 01/10] target-arm: Make Neon helper routines use correct FP status, Aurelien Jarno, 2011/04/03
[Qemu-devel] [PATCH 05/10] target-arm: Correct ABD's handling of negative zeroes, Peter Maydell, 2011/04/01