qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 59/60] AArch64: Add "Floating-point data-process


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH 59/60] AArch64: Add "Floating-point data-processing (3
Date: Fri, 27 Sep 2013 14:34:53 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8

On 09/26/2013 05:48 PM, Alexander Graf wrote:
> +    if (is_neg) {
> +        gen_helper_vfp_negs(tcg_op1, tcg_op1);
> +        gen_helper_vfp_negs(tcg_op3, tcg_op3);
> +    }
> +
> +    gen_helper_vfp_muls(tcg_res, tcg_op1, tcg_op2, fpst);
> +    if (is_sub) {
> +        gen_helper_vfp_subs(tcg_res, tcg_op3, tcg_res, fpst);
> +    } else {
> +        gen_helper_vfp_adds(tcg_res, tcg_op3, tcg_res, fpst);
> +    }
> +

Unlike original vfp, aarch64 requires infinite precision intermediate.
Which means that you need to use float_muladd.  Note that

  opa_neg = float_muladd_negate_c
  op1_neg = float_muladd_negate_product

Or those together into the 4th argument to float_muladd.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]