Lines Matching +full:- +full:d2

21 |	round --- round result according to precision/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).
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
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
149 movel #30,%d2 |of the sgl prec. limits
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
152 andil #0x0000003f,%d2 |s bit is the or of all other
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
161 movel #30,%d2 |of the dbl prec. limits
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
173 moveml (%a7)+,%d2/%d3 |restore scratch registers
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
205 clrl LOCAL_LO(%a0) |clear d2
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
281 | exponent (d0) is set to 0 and the mantissa (d1 & d2) is not
311 moveml %d2/%d3/%d5/%d6,-(%a7)
313 movel LOCAL_LO(%a0),%d2
322 moveml (%a7)+,%d2/%d3/%d5/%d6
325 movel %d2,%d6 |save ls mant in d6
326 lsll %d0,%d2 |shift ls mant by count
337 movel %d2,LOCAL_LO(%a0)
338 moveml (%a7)+,%d2/%d3/%d5/%d6
341 bfffo %d2{#0:#32},%d3 |check if any bits set in ls mant
347 moveml (%a7)+,%d2/%d3/%d5/%d6
351 moveml (%a7)+,%d2/%d3/%d5/%d6
358 movel %d7,-(%a7)
362 movel %d6,-(%a7)
398 | denorm --- denormalize an intermediate result
420 btstb #6,LOCAL_EX(%a0) |check for exponents between $7fff-$4000
442 subw LOCAL_EX(%a0),%d0 |diff = threshold - exp
455 subw LOCAL_EX(%a0),%d0 |diff = threshold - exp
477 movel #0,LOCAL_LO(%a0) |set d2 = 0 (ms mantissa)
485 | dnrm_lp --- normalize exponent/mantissa to specified threshold
503 movel %d2,-(%sp) |save d2 for temp use
506 bfextu WBTEMP_GRS(%a6){#6:#3},%d2 |extract guard,round, sticky bit
508 lsll %d0,%d2 |shift g,r,s to their positions
509 movel %d2,%d0
511 movel (%sp)+,%d2 |restore d2
515 subw LOCAL_EX(%a0),%d1 |d1 = threshold - uns exponent
533 movel %d2,-(%sp)
536 subw %d1,%d0 |d0 = 32 - d1
537 bfextu LOCAL_EX(%a0){%d0:#32},%d2
538 bfextu %d2{%d1:%d0},%d2 |d2 = new LOCAL_HI
541 movel %d2,LOCAL_HI(%a0) |store new LOCAL_HI
549 movel FP_SCR2+LOCAL_GRS(%a6),%d2 |restore original g,r,s
550 andil #0xe0000000,%d2 |clear all but G,R,S
551 tstl %d2 |test if original G,R,S are clear
556 movel (%sp)+,%d2
562 movel %d2,-(%sp)
566 subw %d1,%d0 |d0 = 32 - d1
567 bfextu LOCAL_EX(%a0){%d0:#32},%d2
568 bfextu %d2{%d1:%d0},%d2 |d2 = new LOCAL_LO
583 movel %d2,LOCAL_LO(%a0) |store LOCAL_LO
584 movel FP_SCR2+LOCAL_GRS(%a6),%d2 |restore original g,r,s
585 andil #0xe0000000,%d2 |clear all but G,R,S
586 tstl %d2 |test if original G,R,S are clear
591 movel (%sp)+,%d2