Re: [PATCH v3] MIPS: Implement ieee754 NAN2008 emulation mode

Maciej W. Rozycki
2024-06-27T19:54:40Z

On Thu, 27 Jun 2024, Jiaxun Yang wrote:

> >> @@ -318,6 +318,10 @@ void mips_set_personality_nan(struct arch_elf_state *state)
> >> t->thread.fpu.fcr31 = c->fpu_csr31;
> >> switch (state->nan_2008) {
> >> case 0:
> >> + if (!(c->fpu_msk31 & FPU_CSR_NAN2008))
> >> + t->thread.fpu.fcr31 &= ~FPU_CSR_NAN2008;
> >> + if (!(c->fpu_msk31 & FPU_CSR_ABS2008))
> >> + t->thread.fpu.fcr31 &= ~FPU_CSR_ABS2008;
> >
> > why is this needed?
>
> Because t->thread.fpu.fcr31 comes from c->fpu_csr31, in this case we the default
> value of c->fpu_csr31 is read from hardware and we don't know what would that be.

But it has always been like this. What has changed with your patch that
you need to mask the bit out now?

Maciej