lib1funcs.asm (udivdi3): Make first divide step produce a 32 bit result before normal...
authorJ"orn Rennecke <joern.rennecke@superh.com>
Tue, 25 Jun 2002 20:39:18 +0000 (20:39 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Tue, 25 Jun 2002 20:39:18 +0000 (21:39 +0100)
commit4de1b7a90705e2633e046feec8523116f564db3d
tree36fecfa562a5580522328656aed4a9f40a513966
parent0e20c0b56f39546c2e70864c23e9de0a40a44571
lib1funcs.asm (udivdi3): Make first divide step produce a 32 bit result before normalization...

* config/sh/lib1funcs.asm (udivdi3): Make first divide step
produce a 32 bit result before normalization, then normalize with a
left shift.  Compute approximative error of 2nd reciprocal
approximation in 2's complement.  Fix mask generation from upper
longword of second divide stage result.
For large divisor, fix shift count used to truncate first stage
divide result; make decision if to adjust upwards based on comparison
of higher parts of normalized values.
(udivdi): Likewise.  Undo normalization of result for large divisor
case.

From-SVN: r54993
gcc/ChangeLog
gcc/config/sh/lib1funcs.asm