M power/fptrap.c => power/fptrap.c +2 -0
@@ 32,6 32,8 @@ fptrap(Ureg *ur)
if((u->fpsave.fpstatus&(1<<17)) == 0)
return;
+print("fpt: %d %s %lux\n", u->p->pid, u->p->text, u->fpsave.fpstatus);
+
if(ur->cause & (1<<31))
iw = *(ulong*)(ur->pc+4);
else
M power/trap.c => power/trap.c +1 -1
@@ 159,7 159,7 @@ m->ur = ur;
notify(ur);
if(u->p->fpstate == FPinactive) {
- restfpregs(&u->fpsave, u->fpsave.fpstatus&~FPEXPMASK);
+ restfpregs(&u->fpsave, u->fpsave.fpstatus);
u->p->fpstate = FPactive;
ur->status |= CU1;
}