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;
> +static const int softfloat_roundingmodes[] = {
FloatRoundMode
> +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.
r~