Lines Matching refs:IT
49 # it makes the FPSP code easier to read and more mainatinable.
630 # exceptional operand and plave it in the fsave state frame, and store #
792 # the src operand is definitely a NORM(!), so tag it as such
870 # exceptional operand and plave it in the fsave state frame, and store #
924 # now, what's left that's not dyadic is fsincos. we can distinguish it
1035 # But, whether bogus or not, if inexact is enabled AND it occurred,
1066 # the src operand is definitely a NORM(!), so tag it as such
1230 # exception, then the a7' calculated here is wrong since it doesn't
1253 btst &0x5,EXC_CMDREG(%a6) # is it an fmove out?
1277 # input is an UNNORM, then convert it to a NORM, DENORM, or ZERO.
1294 beq.b fu_extract # yes, so it's monadic, too
1386 # * there will be no other way to pass it the exceptional operand
1459 beq.b fso_zero # it's a skewed zero
1489 bne.b fso_dbl_dnrm # it's a skewed denorm
1490 tst.l LOCAL_LO(%a0) # is it a zero?
1525 # call here. just figure out what it is...
1528 beq.b fu_out_denorm # it's a DENORM
1531 bsr.l unnorm_fix # yes; fix it
1570 # it here. if it was used from supervisor mode, then we have to handle this
1596 # the extended precision result is still in fp0. but, we need to save it
1597 # somewhere on the stack until we can copy it to its final resting place.
1643 # from FPIAR and put it in the trace stack frame then jump to _real_trace().
1667 # we don't mess with the existing fsave frame. just re-insert it and
1681 short tbl_fu_out - tbl_fu_out # INEX1 won't make it here
1684 # frestore it.
1764 # the extended precision result is still in fp0. but, we need to save it
1765 # somewhere on the stack until we can copy it to its final resting place
1766 # (where the exc frame is currently). make sure it's not at the top of the
1767 # frame or it will get overwritten when the exc stack frame is shifted "down".
1839 beq.b fu_extract_p # yes, so it's monadic, too
1964 # * there will be no other way to pass it the exceptional operand
2049 # exception was being traced. Make the "current" PC the FPIAR and put it in the
2213 # now, we copy the default result to it's proper location
2253 # now, we copy the default result to it's proper location
2293 # now, we copy the default result to it's proper location
2308 # format stuffed is as weird as the hardware usually makes it.
2328 lsr.l %d0,%d1 # shift it
2349 bsr.l dnrm_lp # denorm it
2444 # Before any of the above is attempted, it must be checked to #
2466 # So, we must check to see if it's disabled and handle that case separately.
2509 # so, now it's immediate data extended precision AND PACKED FORMAT!
2543 # The packed operand is a zero if the mantissa is all zero, else it's
2679 # the enabled exception was inexact. so, if it occurs with an overflow
2721 # exception was being traced. Make the "current" PC the FPIAR and put it in
2776 # do it here.
2938 # this ain't a pretty solution, but it works:
3105 # operr result out to memory or data register file as it should. #
3295 # SNAN result out to memory or data register file as it should. #
3594 # instruction in order to get this value and then store it to the #
3597 # inexact result out to memory or data register file as it should. #
3879 bfextu %d0{&0:&10},%d1 # is it an fmovecr?
3883 bfextu %d0{&16:&6},%d1 # is it an fmovecr?
3887 # it's an fmovecr w/ a non-zero <ea> that has entered through
4022 # machine encounters an fp unimp exception. Therefore, it must be set
4185 # often so that's why it gets lower priority.
4213 # the enabled exception was inexact. so, if it occurs with an overflow
4216 # it's actually an inexact and act appropriately. this is the only easy
4270 cmpi.b %d1,&0x1 # is it an fdb<cc>?
4272 cmpi.b %d1,&0x7 # is it an fs<cc>?
4275 cmpi.b %d1,&0x2 # is it an fs<cc>?
4352 btst &0x5,EXC_SR(%a6) # yes; is it a user mode exception?
4360 # remember, I'm assuming that post-increment is bogus...(it IS!!!)
5652 #--WILL BE TOO INEFFICIENT. THE WAY AROUND IT IS THAT
6083 #--WILL BE TOO INEFFICIENT. THE WAY AROUND IT IS THAT
6377 #--U = (X-F)/(1+XF) IS SMALL (REMEMBER F IS CLOSE TO X). IT IS
6389 #--THAT IS IT MATCHES THE EXPONENT AND FIRST 5 BITS OF X, THE
6407 #--CREATE ATAN(F) AND STORE IT IN ATANF, AND
6884 # d) It is important to estimate how large can |R| be #
7002 # However, it is conceivable |X| can be small very often #
7636 blt.b sgetexpn # it's negative
7656 bclr &0xe,%d0 # make it the new exp +-3fff
7663 bmi.b sgetmann # it's negative
8439 fcmp.b %fp0,&0x1 # is it equal to one?
8744 fmov.l %d0,%fpcr # load it
9349 beq.b pi_tbl # it is pi
9640 # is slower. but, don't fret, I don't see it being used much either.
9644 neg.l %d0 # make it positive
9645 cmpi.b %d0,&0x20 # is it > 32?
10073 # preceding fmul was a denorm. but, it better not have been since the
11363 # because it will be VERY slow. #
11393 beq.b fge_fin # it was an "fmov"
11395 beq.b fge_fadd # it was an "fadd"
11663 # - calculate the default result and return it in fp0.
11711 bne.b fmul_ovfl_ena_sd # it's sgl or dbl
11747 # - calculate the default result and return it in fp0.
11766 # no, it didn't overflow; we have correct result
11774 # - calculate the default result and return it in fp0.
12320 # no, it didn't overflow; we have correct result
12339 # prec:mode should be zero at this point but it won't affect answer anyways.
13100 # no, it didn't overflow; we have correct result
13106 # input is not normalized; what is it?
13119 # prec:mode should be zero at this point but it won't affect answer anyways.
13163 # input is not normalized; what is it?
13261 # input is not normalized; what is it?
13280 # to a very small NORM and ship it to the NORM routine.
13363 # input is not normalized; what is it?
13382 # to a very small NORM and ship it to the NORM routine.
13445 # gets an EXOP created for it since it's an underflow. #
13715 # no, it didn't overflow; we have correct result
13721 # input is not normalized; what is it?
13851 # 'N' bit for a negative QNAN or SNAN input so we must squelch it here.
14095 # no, it didn't overflow; we have correct result
14698 cmp.l %d2,(tbl_fadd_ovfl.b,%pc,%d1.w*4) # is it an overflow?
14701 cmp.l %d2,(tbl_fadd_unfl.b,%pc,%d1.w*4) # is it an underflow?
14893 fbgt.w fadd_unfl # yes; it's an underflow
14894 bra.w fadd_normal # no; it's not an underflow
15036 # ok, so it's not an OPERR. but, we do have to remember to return the
15151 cmp.l %d2,(tbl_fsub_ovfl.b,%pc,%d1.w*4) # is it an overflow?
15154 cmp.l %d2,(tbl_fsub_unfl.b,%pc,%d1.w*4) # is it an underflow?
15346 fbgt.w fsub_unfl # yes; it's an underflow
15347 bra.w fsub_normal # no; it's not an underflow
15488 # ok, so it's not an OPERR. but we do have to remember to return
15666 # the exponent is 3fff or 3ffe. if it's 3ffe, then it's a safe number
15800 # no, it didn't overflow; we have correct result
15806 # input is not normalized; what is it?
15987 # normalize the operand if it was a DENORM. Add this normalization #
16038 # If the input operand is a DENORM, normalize it. #
16114 # normalize the operand if it was a DENORM. Add this normalization #
18077 bne.b fscc_mem_op # it's a memory operation
18249 btst &0x5,EXC_EXTWORD(%a6) # is it a move in or out?
18250 beq.w fmovm_data_in # it's a move out
18263 # here, we convert it to be just like the others...
18928 btst &0xb,%d2 # is it word or long?
19077 # we clear the value here if it should actually be suppressed.
19086 # beq.l fmovm_error # if (size == 0) it's reserved
19413 # it would make no sense to have a pre-decrement to a7 in supervisor
19446 # modes. Also, while we're at it, the index register itself must get #
19598 # convert it to a DENORM or a ZERO. #
19602 # If the source operand is byte,word,long, or single, it may be #
19603 # in the data register file. If it's actually out in memory, use one of #
19604 # the mem_read() routines to fetch it. If the mem_read() access returns #
19626 # cmpi.b %d0, &0x2 # which class is it? ('000,'010,'011)
19644 cmpi.w %d0,&0x0038 # is it an fcmp (dyadic) ?
19645 bne.b op000_src # it's an fcmp
19687 cmpi.w %d0,&0x0038 # is it an fcmp (dyadic) ?
19688 bne.b op010_src # it's an fcmp
19782 cmpi.b %d0, &SNAN # is it an SNAN?
19785 cmpi.b %d0, &DENORM # is it a DENORM?
19788 fmov.s (%a0), %fp0 # no, so can load it regular
19799 # (2) read it in from either user or supervisor space #
19956 cmpi.b %d0, &DENORM # is it a sgl DENORM?
19959 cmpi.b %d0, &SNAN # is it a sgl SNAN?
20039 cmpi.b %d0, &DENORM # is it a dbl DENORM?
20042 cmpi.b %d0, &SNAN # is it a dbl SNAN?
20188 # it's b,w,l,s,d,x, or p in size. b,w,l can be stored to either a data #
20391 # the stack frame. so, leave it in FP_SRC for now and deal with it later...
20552 # it's definitely an overflow so call ovf_res to get the correct answer
20607 # if exp now equals one, then it overflowed so call ovf_res.
20611 andi.w &0x8000,%d1 # keep it,clear exp
20773 # it's definitely an overflow so call ovf_res to get the correct answer
20818 # if exp now equals one, then it overflowed so call ovf_res.
20822 andi.w &0x8000,%d1 # keep it,clear exp
20951 lsl.l &0x7,%d0 # shift it into single exp bits
21047 cmpi.b %d0,&DENORM # is it a DENORM?
21051 cmpi.b %d0,&SNAN # is it an SNAN?
21774 # make a copy of FTEMP_LO and place the g,r,s bits directly after it
21778 mov.l %d0, GRS(%a6) # place g,r,s after it
21885 # it only plays a role in shift amounts of 61-63.
21922 blt.b case3_64 # no; it's == 64
21923 beq.b case3_65 # no; it's == 65
22094 bgt.w add_dbl # no; it's dbl
22095 bra.w add_ext # no; it's ext
22111 bgt.w add_dbl # no; it's dbl
22112 bra.w add_ext # no; it's ext
22128 bgt.w add_dbl # no; it's dbl
22129 bra.w add_ext # no; it's ext
22204 bgt.b dbl_done # no; it's dbl
22205 rts # no; it's ext
22219 # selected rounding precision. It is called by the round subroutine
22235 # %d0 actually already hold g,r,s since _round() had it before calling
22236 # this function. so, as long as we don't disturb it, we are "returning" it.
22489 # If it's an unnormalized zero, alter the operand and force it #
22527 # it's an "unnormalized zero". let's convert it to an actual zero...
22939 # convert it to a floating-point binary number. #
22959 # If the packed operand is a ZERO,NAN, or INF, convert it to #
22985 # The packed operand is a zero if the mantissa is all zero, else it's
23053 # it is negative. #
23082 mov.l 0x4(%a0),FP_SCR0_HI(%a6) # so we don't alter it
23202 # if the exp was positive, and added if it was negative. The purpose
23259 bne.b ap_p_cl # if lw 2 is zero, skip it
23405 lea.l PTENRP(%pc),%a1 # it is RP
23410 lea.l PTENRM(%pc),%a1 # it is RM
23413 lea.l PTENRN(%pc),%a1 # it is RN
23417 neg.l %d0 # invert it
23455 # it will be inex2, but will be reported as inex1 by get_op.
23459 bclr &inex2_bit+8,%d0 # test for inex2 and clear it
23488 it. #
23493 # ILOG is the log base 10 of the input value. It is #
23502 # ICTR is a flag used in A13. It must be set before the #
23508 # if it is a positive number, or the number of digits #
23657 bgt.b pos_exp # if greater than zero, it is a norm
23674 # ILOG is the log base 10 of the input value. It is approx-
23727 # ICTR is a flag used in A13. It must be set before the
23734 # can dictate either the total number of digits, if it is
23774 ble.b A7_str # if not, forget it
23844 clr.w %d5 # set it zero initially
23871 bne.b not_rn # if zero, it is RN
23876 bcc.b not_rp2 # if carry clear, it is RM
23950 # since the input operand is a DENORM, we can't multiply it directly.
24037 mov.l USER_FPCR(%a6),L_SCR1(%a6) # save it for later
24326 bra.b convrt # do it
24335 bra.b convrt # do it
24499 # zero, it is the ls digit. Put the digit in its place in the #
24500 # upper word of d0. If it is the ls digit, write the word #
24582 lsl.w &4,%d7 # move it to upper 4 bits
24583 mov.b %d7,(%a0)+ # store it in memory string
24774 # if it's a fmove out instruction, we don't have to fix a7
24775 # because we hadn't changed it yet. if it's an opclass two
24777 # mode, then also also wasn't updated. if it was user mode, then