[patch][0/5] powerpc: Add support to fully comply with IEEE-754 standard

Zhu Ebony-r57400 ebony.zhu at freescale.com
Thu Jan 25 19:53:33 EST 2007


 

> -----Original Message-----
> From: Kumar Gala [mailto:galak at kernel.crashing.org] 
> Sent: 2007年1月25日 16:29
> To: Zhu Ebony-r57400
> Cc: paulus at samba.org; linuxppc-dev at ozlabs.org
> Subject: Re: [patch][0/5] powerpc: Add support to fully 
> comply with IEEE-754 standard
> 
> 
> On Jan 25, 2007, at 2:25 AM, Zhu Ebony-r57400 wrote:
> 
> >
> >> No, I think the round handler should try to do the 
> rounding by hand.
> >> Since you have the non rounded information provided by HW, 
> its much 
> >> simpler to just do the rounding step.
> >
> > Hi Kumar,
> >
> > I have some new thoughts about rounding handler.
> > Suppose we set SPEFSCR[FRMC]=0b10 (rounding towards +Inf) 
> and a normal 
> > "efsmul" may generate rounding interrupt. At this time, 
> according to 
> > manual, unrounded (truncated) result is placed in the 
> target register. 
> > Please note the target register contains a hexadecimal 
> representation 
> > of a floating point number. Since it represents a floating point 
> > number exactly so we can not round it anymore.
> 
> I don't follow what you mean by not being able to round it anymore.

I try to make myself clear:
>From my understanding, rounding is from a floating point number to another
which can be represented by IEEE-754 complied hexadecimal, but not
from a hexadecimal to another. For example:

Assume the result we got from efsmul is 3.29305125103e-44
It will be stored in target register as 0x00000017. However, 0x00000017
Represents 3.2229864679470793e-44 accurately. Can we round  3.2229864679470793e-44?
I'm afraid not. I mean, we must round the result before it being stored in
target register as hexadecimal, not after.



> > Maybe we still need to emulate the whole "efsmul" instruction by 
> > software.
> 
> You can't always do that.  Think about the following instruction:
> 
> 	efsmul	r3, r3, r3
> 
> You'll have lost the original value of r3 when the exception occurs.

If this operation causes FP data interrupt, just let data interrupt handler to
do the simulation. I think there's no chance that we get data and round interrupts
simultaneously.


> 
> - k
> 
> 



More information about the Linuxppc-dev mailing list