Lines Matching +full:clear +full:- +full:bit
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
40 | The INEX bit of USER_FPSR will be set if the rounded result was
41 | inexact (i.e. if any of the g-r-s bits were set).
51 | ;the appropriate g-r-s bits.
112 | If (g=1), then add 1 to l and if (r=s=0), then clear l
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
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
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
168 bras end_sd |if clear, exit
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
224 andib #0xfe,LOCAL_LO+3(%a0) |clear the l 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
276 | bit of the mantissa (msb in d1).
279 | bit of the mantissa (msb in d1) unless this would mean the exponent
280 | would go less than 0. In that case the number becomes a denorm - the
289 | Distance to first 1 bit in mantissa = X
301 | L_SCR1{4} = fpte15 or ete15 bit
311 moveml %d2/%d3/%d5/%d6,-(%a7)
358 movel %d7,-(%a7)
362 movel %d6,-(%a7)
368 lsll %d7,%d0 |shift first 1 to j bit position
391 lsll %d7,%d1 |shift first 1 to integer bit in ms mant
394 clrl LOCAL_LO(%a0) |clear ls mant
398 | denorm --- denormalize an intermediate result
420 btstb #6,LOCAL_EX(%a0) |check for exponents between $7fff-$4000
429 clrl %d0 |clear the sticky flag
442 subw LOCAL_EX(%a0),%d0 |diff = threshold - exp
446 clrl %d0 |else clear the sticky flag
455 subw LOCAL_EX(%a0),%d0 |diff = threshold - exp
459 clrl %d0 |else clear the sticky flag
473 movel #0x20000000,%d0 |set sticky bit in return value
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
515 subw LOCAL_EX(%a0),%d1 |d1 = threshold - uns exponent
533 movel %d2,-(%sp)
536 subw %d1,%d0 |d0 = 32 - d1
550 andil #0xe0000000,%d2 |clear all but G,R,S
551 tstl %d2 |test if original G,R,S are clear
553 orl #0x20000000,%d0 |set sticky bit in d0
555 andil #0xe0000000,%d0 |clear all but G,R,S
562 movel %d2,-(%sp)
566 subw %d1,%d0 |d0 = 32 - d1
571 bnes c2_sstky |bra if sticky bit to be set
573 bnes c2_sstky |bra if sticky bit to be set
585 andil #0xe0000000,%d2 |clear all but G,R,S
586 tstl %d2 |test if original G,R,S are clear
588 orl #0x20000000,%d0 |set sticky bit in d0
628 lsrl #1,%d0 |shift high bit into R bit