On 12/28/2013 01:49 PM, Peter Maydell wrote: > + /* These are fused multiply-add, and must be done as one > + * floating point operation with no rounding between the > + * multiplication and addition steps. > + * NB that doing the negations here as separate steps is > + * correct : an input NaN should come out with its sign bit > + * flipped if it is a negated-input. > + */ > + if (o1 == true) { > + gen_helper_vfp_negs(tcg_op3, tcg_op3); > + } > + > + if (o0 != o1) { > + gen_helper_vfp_negs(tcg_op1, tcg_op1); > + } > + > + gen_helper_vfp_muladds(tcg_res, tcg_op1, tcg_op2, tcg_op3, fpst); Do you really get the wrong result passing the appropriate float_muladd_negate_* constant? I realize that the A32 target doesn't do this either, but shouldn't that be cleaned up? It's certainly confusing to the reader, wondering why they aren't used... r~ _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm