19 static inline unum __attribute__((const)) dstep(unum rs, unum rd) {
20 asm("dstep %1,%0" : "+r" (rd) : "r" (rs));
24 static inline unum __attribute__((const)) lz(unum rs) {
26 asm("lz %1,%0" : "=r" (rd) : "r" (rs));
32 static inline unum __attribute__ ((const)) dstep(unum rs, unum rd) {
40 static inline unum __attribute__((const)) lz(unum rs) {
42 while ( rs >= 0x7fffffff ) {
51 xnum NAME (unum num, unum den)
53 unum quot = 0, qbit = 1;
59 return 0; /* If signal ignored... */
62 if (den == 1) return (xnum)(REM ? 0 : num);
65 if ( (snum)(num^den) < 0 )
67 if ( (snum)num < 0 ) num = -num;
68 if ( (snum)den < 0 ) den = -den;
74 /* Left-justify denominator and count shift */
75 while ( (snum)den >= 0 ) {
89 v = (xnum)(REM ? num : quot);