> -----Original Message----- > From: Richard Henderson <richard.hender...@linaro.org> > Sent: Sunday, February 14, 2021 2:13 PM > To: Taylor Simpson <tsimp...@quicinc.com>; qemu-devel@nongnu.org > Cc: phi...@redhat.com; alex.ben...@linaro.org; laur...@vivier.eu; > a...@rev.ng; Brian Cain <bc...@quicinc.com> > Subject: Re: [PATCH v8 15/35] Hexagon (target/hexagon/arch.[ch]) utility > functions > > On 2/7/21 9:46 PM, Taylor Simpson wrote: > > +uint32_t carry_from_add64(uint64_t a, uint64_t b, uint32_t c) > > +{ > > + uint64_t tmpa, tmpb, tmpc; > > + tmpa = fGETUWORD(0, a); > > + tmpb = fGETUWORD(0, b); > > + tmpc = tmpa + tmpb + c; > > + tmpa = fGETUWORD(1, a); > > + tmpb = fGETUWORD(1, b); > > + tmpc = tmpa + tmpb + fGETUWORD(1, tmpc); > > + tmpc = fGETUWORD(1, tmpc); > > + return tmpc; > > +} > > I presume this is intended to compute carry-out from 64-bit addition with > carry-in? > > uint64_t r = a + b; > return c ? r <= a : r < a;
Actually, I can remove this because the instructions that use it have TCG overrides (i.e., there isn't a helper that references it). > > > +static const int softfloat_roundingmodes[] = { > > FloatRoundMode OK > > +static float32 float32_mul_pow2(float32 a, uint32_t p, float_status > *fp_status) > > +{ > > + float32 b = make_float32((SF_BIAS + p) << SF_MANTBITS); > > + return float32_mul(a, b, fp_status); > > +} > > This is float32_scalbn. OK Thanks, Taylor