Lines Matching +full:low +full:- +full:precision

21 |	round --- round result according to precision/mode
24 | d1(high word) contains rounding precision:
28 | d1(low word) contains rounding mode:
36 | a0 is preserved and the g-r-s bits in d0 are cleared.
37 | The result is not typed - the tag field is invalid. The
41 | inexact (i.e. if any of the g-r-s bits were set).
50 | :rounding precision and sets
51 | ;the appropriate g-r-s bits.
117 asll #1,%d0 |shift g-bit to c-bit
124 | ext_grs --- extract guard, round and sticky bits
130 | selected rounding precision. It is called by the round subroutine
138 swap %d1 |have d1.w point to round precision
144 moveml %d2/%d3,-(%a7) |make some temp registers
148 bfextu LOCAL_HI(%a0){#24:#2},%d3 |sgl prec. g-r are 2 bits right
150 lsll %d2,%d3 |shift g-r bits to MSB of d3
151 movel LOCAL_HI(%a0),%d2 |get word 2 for s-bit test
153 bnes st_stky |bits to the right of g-r
160 bfextu LOCAL_LO(%a0){#21:#2},%d3 |dbl-prec. g-r are 2 bits right
162 lsll %d2,%d3 |shift g-r bits to the MSB of d3
163 movel LOCAL_LO(%a0),%d2 |get lower mantissa for s-bit test
164 andil #0x000001ff,%d2 |s bit is the or-ing of all
165 bnes st_stky |other bits to the right of g-r
179 .set ad_1_sgl,0x00000100 | constant to add 1 to l-bit in sgl prec
180 .set ad_1_dbl,0x00000800 | constant to add 1 to l-bit in dbl prec
183 |Jump table for adding 1 to the l-bit indexed by rnd prec
196 roxrw LOCAL_HI(%a0) |shift v-bit back in
197 roxrw LOCAL_HI+2(%a0) |shift v-bit back in
202 andiw #0xfe00,LOCAL_HI+2(%a0) |clear the l-bit
212 addql #1,LOCAL_LO(%a0) |add 1 to l-bit
216 roxrw LOCAL_HI(%a0) |mant is 0 so restore v-bit
217 roxrw LOCAL_HI+2(%a0) |mant is 0 so restore v-bit
235 roxrw LOCAL_HI(%a0) |mant is 0 so restore v-bit
236 roxrw LOCAL_HI+2(%a0) |mant is 0 so restore v-bit
243 andiw #0xf000,LOCAL_LO+2(%a0) |clear the l-bit
280 | would go less than 0. In that case the number becomes a denorm - the
311 moveml %d2/%d3/%d5/%d6,-(%a7)
358 movel %d7,-(%a7)
362 movel %d6,-(%a7)
398 | denorm --- denormalize an intermediate result
406 | d0: rounding precision
413 | d0 comes into this routine with the rounding precision. It
415 | rounding precision.
420 btstb #6,LOCAL_EX(%a0) |check for exponents between $7fff-$4000
425 cmpib #0,%d0 |if 0 then extended precision
436 cmpil #1,%d0 |if 1 then single precision
442 subw LOCAL_EX(%a0),%d0 |diff = threshold - exp
455 subw LOCAL_EX(%a0),%d0 |diff = threshold - exp
485 | dnrm_lp --- normalize exponent/mantissa to specified threshold
497 | so that bfext can be used to extract the new low part of the mantissa.
503 movel %d2,-(%sp) |save d2 for temp use
515 subw LOCAL_EX(%a0),%d1 |d1 = threshold - uns exponent
533 movel %d2,-(%sp)
536 subw %d1,%d0 |d0 = 32 - d1
562 movel %d2,-(%sp)
566 subw %d1,%d0 |d0 = 32 - d1