* Copyright (c) 1986 Regents of the University of California.
* This code is derived from software contributed to Berkeley by
* %sccs.include.redist.c%
#if defined(SYSLIBC_SCCS) && !defined(lint)
.asciz "@(#)sfnorm.s 1.3 (Berkeley) %G%"
#endif /* SYSLIBC_SCCS and not lint */
#include <tahoemath/fp.h>
XENTRY(sfnorm, R2|R3|R4|R5|R6)
movl r0,r4 /* copy to temporary. */
clrl r3 /* r3 - pos of m.s.b */
/* compute the shift (r4). */
jlss shiftr /* if less then zero we shift right. */
shll r4,r0,r0 /* else we shift left. */
subl2 r4,r2 /* uodate exponent. */
jleq underflow /* if less then 0 (biased) it is underflow. */
jmp combine /* go to combine exponent and fraction. */
shrl r4,r0,r0 /* shift right. */
addl2 r4,r2 /* update exponent */
jgeq overflow /* check for overflow. */
andl2 $CLEARHID,r0 /* clear the hidden bit. */
shal $EXPSHIFT,r2,r2 /* shift the exponent to its proper place. */