hi,linux-mips,
I find that current->used_math isn't cleared when we start a new process.Is
it
intended? I mean 'start_thread' in do_exec but not 'copy_thread' in do_fork when
speaking 'start a new process'. We can/should? keep used_math for the
latter,but for
the former?
It leads to a failure in libm-test(the fpu control register doesn't equal to
default)
I think the reason is that init_fpu fail to be called with used_math set.
BTW: besides this failure,i see a lot of more related to extra "Invalid
operation" exception.
e.g.:
exp(NaN) == NaN: Exception "Invalid operation" set
fmax (0, NaN) == 0: Exception "Invalid operation" set
..
My cpu is IDT RC64474,which is basically a r4600.
I think the cause probably is mips's special SNaN and QNaN handling.
Could somebody explain?
Regards
Zhang Fuxin
fxzhang@ict.ac.cn
|