On Tue, Jun 24, 2014 at 01:57:52PM -0700, Richard Henderson wrote: > On 06/24/2014 01:32 PM, Al Viro wrote: > > If you have any ideas for testing, I do have working hw (the box that is > > currently alive is ev45, though; I _can_ try to boot a UP1000 one, but > > I make no promises regarding its fans, both in PSU and in CPU module ;-/) > > Ah. Gotta be careful with ev4/45... half of the fpu is unimplemented, and so > if you're not careful all you're testing is the kernel emulation behaviour.
*nod* > > Um? No, I mean having gen_fp_exc_raise() generate a call of one of the 8 > > helpers; gen_ieee_arith3() and friends would remain as-is. It's just that > > instead of generating load to exc, andi, call of helper_fp_exc_raise_s or > > call of helper_fp_exc_raise we would generate a call of one of the > > helper_fp_exc_raise{,_u,_v,_s,_su,_sui,_sv,_svi} and let that sucker deal > > with loading exc, updating ->fpcr_exc_status and generating traps. > > Ah, I getcha. Yes, that makes sense. FWIW, the crudest version of that is simply + env->fpcr_exc_status |= (uint8_t)env->fp_status.float_exception_flags; in the very beginning of helper_fp_exc_raise_s(). And yes, it recovers math/tests-misc.c, even though it's obviously not a good final fix. Al, off to figure out the black magic TCG is using to generate calls...