Hi Umesh,

Looking at your patch, this would break all results which need to be normalized.


Index: libgcc/config/arm/ieee754-df.S
===================================================================
--- libgcc/config/arm/ieee754-df.S      (revision 262850)
+++ libgcc/config/arm/ieee754-df.S      (working copy)
@@ -203,8 +203,11 @@
 #endif
 
        @ Determine how to normalize the result.
+       @ if result is denormal i.e (exp)=0,then don't normalise the result,
 LSYM(Lad_p):
        cmp     xh, #0x00100000
+       blt     LSYM(Lad_e)
+       cmp     xh, #0x00100000
        bcc     LSYM(Lad_a)
        cmp     xh, #0x00200000
        bcc     LSYM(Lad_e)

It seems Lad_a doesn't correctly handle the case where the result is a 
denormal. For this case
the result is correct so nothing else needs to be done. This requires an 
explicit test that the
exponent is zero - other cases still need to be renormalized as usual. This 
code looks overly
complex so any change will require extensive testing of all the corner cases.

Wilco

Reply via email to