Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2003-11-11 00:36:38 +0300
committerJeff Johnston <jjohnstn@redhat.com>2003-11-11 00:36:38 +0300
commit030441fc690a0a03107c00fe619b0429fbc6196d (patch)
treefafb005ce2d468b2fd2e4dec8b6816577abb9f75 /newlib/libc/machine
parent8398809e7d682af5dd6bbed7db0cce0f74190040 (diff)
2003-11-10 Jeff Johnston <jjohnstn@redhat.com>
* libc/machine/powerpc/ufix64toa.c (_ufix64to_r): Fix shifts to use (Ebits + 1) which accounts for the sign-bit.
Diffstat (limited to 'newlib/libc/machine')
-rw-r--r--newlib/libc/machine/powerpc/ufix64toa.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/newlib/libc/machine/powerpc/ufix64toa.c b/newlib/libc/machine/powerpc/ufix64toa.c
index 6f0d12870..450e0a352 100644
--- a/newlib/libc/machine/powerpc/ufix64toa.c
+++ b/newlib/libc/machine/powerpc/ufix64toa.c
@@ -74,13 +74,13 @@ _DEFUN (_ufix64toa_r, (rptr, value, mode, ndigits, decpt, sign, rve),
/* build long double */
exp = -negexp + Bias;
word0(ldbl) = (exp << Exp_shift);
- word1(ldbl) = hiword(fix64) << (32-Ebits);
- word2(ldbl) = loword(fix64) << (32-Ebits);
+ word1(ldbl) = hiword(fix64) << (32-Ebits-1);
+ word2(ldbl) = loword(fix64) << (32-Ebits-1);
word3(ldbl) = 0;
- if (Ebits < 32)
+ if (Ebits+1 < 32)
{
- word0(ldbl) |= hiword(fix64) >> Ebits;
- word1(ldbl) |= loword(fix64) >> Ebits;
+ word0(ldbl) |= hiword(fix64) >> (Ebits + 1);
+ word1(ldbl) |= loword(fix64) >> (Ebits + 1);
}
}