Lines Matching +full:ext +full:- +full:32 +full:k
12 | value in memory; d0 contains the k-factor sign-extended
13 | to 32-bits. The input may be either normalized,
18 | Saves and Modifies: D2-D7,A2,FP2
22 | A1. Set RM and size ext; Set SIGMA = sign of input.
23 | The k-factor is saved for use in d7. Clear the
45 | k-factor can dictate either the total number of digits,
67 | A9. Scale X -> Y.
74 | compensated for by 'or-ing' in the INEX2 flag to
77 | A11. Restore original FPCR; set size ext.
87 | or less than LEN -1 digits, adjust ILOG and repeat from
114 | d2: upper 32-bits of mantissa for binstr
115 | d3: scratch;lower 32-bits of mantissa for binstr
119 | d7: k-factor
122 | a2: pointer to FP_X; abs(original value) in ext
165 moveml %d2-%d7/%a2,-(%a7)
166 fmovemx %fp0-%fp2,-(%a7)
168 | A1. Set RM and size ext. Set SIGMA = sign input;
169 | The k-factor is saved for use in d7. Clear BINDEC_FLG for
175 fmovel #rm_mode,%FPCR |set RM and ext
177 movel %d0,%d7 |move k-factor to d7
217 | ILOG is the log base 10 of the input value. It is approx-
224 | d0: k-factor/exponent
230 | d7: k-factor/Unchanged
244 movel #-4933,%d6 |force ILOG = -4933
266 fmovel #0,%FPSR |zero all of fpsr - nothing needed
277 | LEN is the number of digits to be displayed. The k-factor
293 | d7: k-factor/Unchanged
306 tstl %d7 |branch on sign of k
307 bles k_neg |if k <= 0, LEN = ILOG + 1 - k
308 movel %d7,%d4 |if k > 0, LEN = k
312 subl %d7,%d4 |subtract off k
339 | ----------------------------------------------
359 | d0: exponent/scratch - final is 0
361 | d3: x/scratch - offset ptr into PTENRM array
364 | d6: ILOG/ILOG or k if ((k<=0)&(ILOG<k))
365 | d7: k-factor/Unchanged
378 tstl %d7 |test sign of k
380 cmpl %d6,%d7 |test k - ILOG
381 blts k_pos |if ILOG >= k, skip this
382 movel %d7,%d6 |if ((k<0) & (ILOG < k)) ILOG = k
384 movel %d6,%d0 |calc ILOG + 1 - LEN in d0
393 cmpl #0xffffecd4,%d0 |test iscale <= -4908
450 | A9. Scale X -> Y.
470 | d7: k-factor/Unchanged
487 fdivx %fp1,%fp0 |calculate X / SCALE -> Y to fp0
493 fmovemx %fp1-%fp1,-(%a7) |load ETEMP with 10^ISCALE
494 movel 8(%a0),-(%a7) |load FPTEMP with input arg
495 movel 4(%a0),-(%a7)
496 movel (%a0),-(%a7)
499 clrl -(%a7) |clear lword on stack
502 moveb #BUSY_SIZE-4,1(%a7) |write current busy size
516 fmulx %fp1,%fp0 |calculate X * SCALE -> Y to fp0
521 | for by 'or-ing' in the INEX2 flag to the lsb of Y.
531 | d7: k-factor/Unchanged
549 | A11. Restore original FPCR; set size ext.
557 andil #0x00000030,USER_FPCR(%a6) |set size to ext,
566 | d0: FPSR with AINEX cleared/FPCR with size set to ext
572 | d7: k-factor/Unchanged
576 | a6: temp pointer to FP_SCR2(a6) - orig value saved and restored
586 moveml %d0-%d1/%a0-%a1,-(%a7) |save regs used by sintd0
587 movel L_SCR1(%a6),-(%a7)
588 movel L_SCR2(%a6),-(%a7)
593 orl #0x80000000,(%a0) |if neg, use -Y
595 movel USER_FPSR(%a6),-(%a7)
601 moveml (%a7)+,%d0-%d1/%a0-%a1 |restore regs used by sint
608 | or less than LEN -1 digits, adjust ILOG and repeat from
613 | in extended precision, so the use of a previous power-of-ten
619 | d0: FPCR with size set to ext/scratch final = 0
625 | d7: k-factor/Unchanged
640 bne not_zr |if non-zero, go to second test
642 | Compute 10^(LEN-1)
646 subql #1,%d0 |d0 = LEN -1
657 | 10^LEN-1 is computed for this test and A14. If the input was
665 | Compare abs(YINT) to 10^(LEN-1) and 10^LEN
669 fcmpx %fp2,%fp0 |compare abs(YINT) with 10^(LEN-1)
727 | d0: x/LEN call to binstr - final is 0
729 | d2: x/ms 32-bits of mant of abs(YINT)
730 | d3: x/ls 32-bits of mant of abs(YINT)
734 | d7: k-factor/Unchanged
789 | 32 16 15 0
790 | -----------------------------------------
792 | -----------------------------------------
795 | is non-zero, OPERR is signaled. In all cases, all 4 digits are
800 | d0: x/LEN call to binstr - final is 0
802 | d2: x/ms 32-bits of exp fraction/scratch
803 | d3: x/ls 32-bits of exp fraction
807 | d7: k-factor/Unchanged
823 fbeq den_zero |if zero, use k-factor or 4933
828 tstl %d7 |check sign of the k-factor
881 | d0: x/scratch - final is x
887 | d7: k-factor/Unchanged
915 fmovemx (%a7)+,%fp0-%fp2
916 moveml (%a7)+,%d2-%d7/%a2