Lines Matching refs:IS

13 # THE SOFTWARE is provided on an "AS IS" basis and without warranty.
4360 # remember, I'm assuming that post-increment is bogus...(it IS!!!)
5141 #--SAVE FPCR, FP1. CHECK IF |X| IS TOO SMALL OR LARGE
5160 #--THIS IS THE USUAL CASE, |X| <= 15 PI.
5161 #--THE ARGUMENT REDUCTION IS DONE BY TABLE LOOK UP.
5174 # A1 IS THE ADDRESS OF N*PIBY2
5175 # ...WHICH IS IN TWO PIECES Y1 & Y2
5182 #--GET N+ADJN AND SEE IF SIN(R) OR COS(R) IS NEEDED
5184 add.l ADJN(%a6),%d1 # SEE IF D0 IS ODD OR EVEN
5185 ror.l &1,%d1 # D0 WAS ODD IFF D0 IS NEGATIVE
5190 #--THEN WE RETURN SGN*SIN(R). SGN*SIN(R) IS COMPUTED BY
5200 fmov.x %fp0,X(%a6) # X IS R
5201 fmul.x %fp0,%fp0 # FP0 IS S
5207 fmul.x %fp1,%fp1 # FP1 IS T
5212 eor.l %d1,X(%a6) # X IS NOW R'= SGN*R
5243 #--THEN WE RETURN SGN*COS(R). SGN*COS(R) IS COMPUTED BY
5249 #--WHILE B2 AND B3 ARE IN DOUBLE-EXTENDED FORMAT, B1 IS -1/2
5250 #--AND IS THEREFORE STORED AS SINGLE PRECISION.
5254 fmul.x %fp0,%fp0 # FP0 IS S
5260 fmul.x %fp1,%fp1 # FP1 IS T
5262 fmov.x %fp0,X(%a6) # X IS S
5269 eor.l %d1,X(%a6) # X IS NOW S'= SGN*S
5274 or.l &0x3F800000,%d1 # D0 IS SGN IN SINGLE
5371 #--THIS IS THE USUAL CASE, |X| <= 15 PI.
5372 #--THE ARGUMENT REDUCTION IS DONE BY TABLE LOOK UP.
5387 fsub.s (%a1),%fp0 # FP0 IS R = (X-Y1)-Y2
5394 cmp.l %d1,&0 # D0 < 0 IFF N IS ODD
5402 fmul.x %fp0,%fp0 # FP0 IS S = R*R
5476 fmul.x %fp0,%fp0 # FP0 IS S = R*R
5577 #--WHEN REDUCEX IS USED, THE CODE WILL INEVITABLY BE SLOW.
5578 #--THIS REDUCTION METHOD, HOWEVER, IS MUCH FASTER THAN USING
5579 #--THE REMAINDER INSTRUCTION WHICH IS NOW IN SOFTWARE.
5614 #--ON ENTRY, FP0 IS X, ON RETURN, FP0 IS X REM PI/2, |X| <= PI/4.
5634 #--FIND THE REMAINDER OF (R,r) W.R.T. 2**L * (PI/2). L IS SO CHOSEN
5652 #--WILL BE TOO INEFFICIENT. THE WAY AROUND IT IS THAT
5660 fadd.s TWOTO63(%a6),%fp2 # THE FRACTIONAL PART OF FP1 IS ROUNDED
5797 #--TERM IN SGL. NOTE THAT PI IS 64-BIT LONG, THUS N*PI/2 IS AT
5890 #--THIS IS THE USUAL CASE, |X| <= 15 PI.
5891 #--THE ARGUMENT REDUCTION IS DONE BY TABLE LOOK UP.
5904 fsub.s (%a1),%fp0 # FP0 IS R = (X-Y1)-Y2
6008 #--WHEN REDUCEX IS USED, THE CODE WILL INEVITABLY BE SLOW.
6009 #--THIS REDUCTION METHOD, HOWEVER, IS MUCH FASTER THAN USING
6010 #--THE REMAINDER INSTRUCTION WHICH IS NOW IN SOFTWARE.
6045 #--ON ENTRY, FP0 IS X, ON RETURN, FP0 IS X REM PI/2, |X| <= PI/4.
6065 #--FIND THE REMAINDER OF (R,r) W.R.T. 2**L * (PI/2). L IS SO CHOSEN
6083 #--WILL BE TOO INEFFICIENT. THE WAY AROUND IT IS THAT
6091 fadd.s TWOTO63(%a6),%fp2 # THE FRACTIONAL PART OF FP1 IS ROUNDED
6355 #--ENTRY POINT FOR ATAN(X), HERE X IS FINITE, NON-ZERO, AND NOT NAN'S
6374 #--THE IDEA IS ATAN(X) = ATAN(F) + ATAN( [X-F] / [1+XF] ).
6375 #--SO IF F IS CHOSEN TO BE CLOSE TO X AND ATAN(F) IS STORED IN
6376 #--A TABLE, ALL WE NEED IS TO APPROXIMATE ATAN(U) WHERE
6377 #--U = (X-F)/(1+XF) IS SMALL (REMEMBER F IS CLOSE TO X). IT IS
6378 #--TRUE THAT A DIVIDE IS NOW NEEDED, BUT THE APPROXIMATION FOR
6379 #--ATAN(U) IS A VERY SHORT POLYNOMIAL AND THE INDEXING TO
6381 #--DIVIDE. IN THE END THIS METHOD IS MUCH FASTER THAN A TRADITIONAL
6389 #--THAT IS IT MATCHES THE EXPONENT AND FIRST 5 BITS OF X, THE
6390 #--SIXTH BITS IS SET TO BE 1. SINCE K = -4, -3, ..., 3, THERE
6391 #--ARE ONLY 8 TIMES 16 = 2^7 = 128 |F|'S. SINCE ATAN(-|F|) IS
6398 mov.l &0x00000000,XFRACLO(%a6) # LOCATION OF X IS NOW F
6400 fmov.x %fp0,%fp1 # FP1 IS X
6401 fmul.x X(%a6),%fp1 # FP1 IS X*F, NOTE THAT X*F > 0
6402 fsub.x X(%a6),%fp0 # FP0 IS X-F
6403 fadd.s &0x3F800000,%fp1 # FP1 IS 1 + X*F
6404 fdiv.x %fp1,%fp0 # FP0 IS U = (X-F)/(1+X*F)
6406 #--WHILE THE DIVISION IS TAKING ITS TIME, WE FETCH ATAN(|F|)
6422 mov.l (%a1)+,ATANFLO(%a6) # ATANF IS NOW ATAN(|F|)
6425 or.l %d1,ATANF(%a6) # ATANF IS NOW SIGN(F)*ATAN(|F|)
6429 #--BUT ALAS, THE DIVIDE IS STILL CRANKING!
6433 #--THE POLYNOMIAL MAY LOOK STRANGE, BUT IS NEVERTHELESS CORRECT.
6434 #--THE NATURAL FORM IS U + U*V*(A1 + V*(A2 + V*A3))
6435 #--WHAT WE HAVE HERE IS MERELY A1 = A3, A2 = A1/A3, A3 = A2/A3.
6436 #--THE REASON FOR THIS REARRANGEMENT IS TO MAKE THE INDEPENDENT
6459 #--|X| IS IN d0 IN COMPACT FORM. FP1, d0 SAVED.
6460 #--FP0 IS X AND |X| <= 1/16 OR |X| >= 16.
6468 #--WHICH IS X + X*Y*( [B1+Z*(B3+Z*B5)] + [Y*(B2+Z*(B4+Z*B6)] )
6477 fmul.x %fp0,%fp0 # FPO IS Y = X*X
6480 fmul.x %fp1,%fp1 # FP1 IS Z = Y*Y
6533 fdiv.x %fp0,%fp1 # FP1 IS -1/X
6535 #--DIVIDE IS STILL CRANKING
6537 fmov.x %fp1,%fp0 # FP0 IS X'
6538 fmul.x %fp0,%fp0 # FP0 IS Y = X'*X'
6539 fmov.x %fp1,X(%a6) # X IS REALLY X'
6542 fmul.x %fp1,%fp1 # FP1 IS Z = Y*Y
6655 #--THIS IS THE USUAL CASE, |X| < 1
6748 #--THIS IS THE USUAL CASE, |X| < 1
7272 fmul.x %fp1,%fp1 # fp1 IS S = R*R
7274 fmov.s &0x3AB60B70,%fp2 # fp2 IS A5
7276 fmul.x %fp1,%fp2 # fp2 IS S*A5
7278 fmul.s &0x3C088895,%fp3 # fp3 IS S*A4
7280 fadd.d EEXPA3(%pc),%fp2 # fp2 IS A3+S*A5
7281 fadd.d EEXPA2(%pc),%fp3 # fp3 IS A2+S*A4
7283 fmul.x %fp1,%fp2 # fp2 IS S*(A3+S*A5)
7288 fmul.x %fp1,%fp3 # fp3 IS S*(A2+S*A4)
7290 fadd.s &0x3F000000,%fp2 # fp2 IS A1+S*(A3+S*A5)
7291 fmul.x %fp0,%fp3 # fp3 IS R*S*(A2+S*A4)
7293 fmul.x %fp1,%fp2 # fp2 IS S*(A1+S*(A3+S*A5))
7294 fadd.x %fp3,%fp0 # fp0 IS R+R*S*(A2+S*A4),
7435 fmul.x %fp1,%fp1 # fp1 IS S = R*R
7437 fmov.s &0x3950097B,%fp2 # fp2 IS a6
7439 fmul.x %fp1,%fp2 # fp2 IS S*A6
7441 fmul.s &0x3AB60B6A,%fp3 # fp3 IS S*A5
7443 fadd.d EM1A4(%pc),%fp2 # fp2 IS A4+S*A6
7444 fadd.d EM1A3(%pc),%fp3 # fp3 IS A3+S*A5
7449 fmul.x %fp1,%fp2 # fp2 IS S*(A4+S*A6)
7452 fmul.x %fp1,%fp3 # fp3 IS S*(A3+S*A5)
7454 fadd.d EM1A2(%pc),%fp2 # fp2 IS A2+S*(A4+S*A6)
7455 fadd.s &0x3F000000,%fp3 # fp3 IS A1+S*(A3+S*A5)
7457 fmul.x %fp1,%fp2 # fp2 IS S*(A2+S*(A4+S*A6))
7462 fmul.x %fp3,%fp1 # fp1 IS S*(A1+S*(A3+S*A5))
7464 fmul.x %fp0,%fp2 # fp2 IS R*S*(A2+S*(A4+S*A6))
7465 fadd.x %fp1,%fp0 # fp0 IS R+S*(A1+S*(A3+S*A5))
7467 fadd.x %fp2,%fp0 # fp0 IS EXP(R)-1
7738 #--THIS IS THE USUAL CASE, |X| < 16380 LOG2
7747 bsr setox # FP0 IS EXP(|X|)
7851 #--THIS IS THE USUAL CASE, |X| < 16380 LOG2
7860 bsr setoxm1 # FP0 IS Z = EXPM1(Y)
7979 #--THIS IS THE USUAL CASE
7988 fmov.x X(%a6),%fp0 # FP0 IS Y = 2|X|
7994 bsr setoxm1 # FP0 IS Z = EXPM1(Y)
8032 bsr setox # FP0 IS EXP(Y)
8333 #--FPCR SAVED AND CLEARED, INPUT IS 2^(ADJK)*FP0, FP0 CONTAINS
8343 cmp.l %d1,&0 # CHECK IF X IS NEGATIVE
8344 blt.w LOGNEG # LOG OF NEGATIVE ARGUMENT IS INVALID
8345 # X IS POSITIVE, CHECK IF X IS NEAR 1
8346 cmp.l %d1,&0x3ffef07d # IS X < 15/16?
8348 cmp.l %d1,&0x3fff8841 # IS X > 17/16?
8356 #--THE IDEA IS THAT LOG(X) = K*LOG2 + LOG(Y)
8358 #--NOTE THAT U = (Y-F)/F IS VERY SMALL AND THUS APPROXIMATING
8360 #--ALSO NOTE THAT THE VALUE 1/F IS STORED IN A TABLE SO THAT NO
8361 #--DIVISION IS NEEDED TO CALCULATE (Y-F)/F.
8366 sub.l &0x3FFF,%d1 # THIS IS K
8371 #--WHILE THE CONVERSION IS GOING ON, WE GET F AND ADDRESS OF 1/F
8372 mov.l &0x3FFF0000,X(%a6) # X IS NOW Y, I.E. 2^(-K)*X
8380 asr.l &4,%d1 # SHIFTED 20, D0 IS THE DISPLACEMENT
8381 add.l %d1,%a0 # A0 IS THE ADDRESS FOR 1/F
8387 fmovm.x &0xc,-(%sp) # SAVE FP2-3 WHILE FP0 IS NOT READY
8388 #--SUMMARY: FP0 IS Y-F, A0 IS ADDRESS OF 1/F, FP1 IS K
8393 fmul.x (%a0),%fp0 # FP0 IS U = (Y-F)/F
8394 fmul.x LOGOF2(%pc),%fp1 # GET K*LOG2 WHILE FP0 IS NOT READY
8396 fmul.x %fp2,%fp2 # FP2 IS V=U*U
8399 #--LOG(1+U) IS APPROXIMATED BY
8400 #--U + V*(A1+U*(A2+U*(A3+U*(A4+U*(A5+U*A6))))) WHICH IS
8427 fadd.x %fp1,%fp0 # FP0 IS LOG(F) + LOG(1+U)
8444 fsub.s one(%pc),%fp1 # FP1 IS X-1
8445 fadd.s one(%pc),%fp0 # FP0 IS X+1
8446 fadd.x %fp1,%fp1 # FP1 IS 2(X-1)
8447 #--LOG(X) = LOG(1+U/2)-LOG(1-U/2) WHICH IS AN ODD POLYNOMIAL
8451 #--THIS IS AN RE-ENTRY POINT FOR LOGNP1
8452 fdiv.x %fp0,%fp1 # FP1 IS U
8459 fmul.x %fp0,%fp0 # FP0 IS V
8462 fmul.x %fp1,%fp1 # FP1 IS W
8478 fmul.x SAVEU(%a6),%fp0 # FP0 IS U*V
8489 #--REGISTERS SAVED FPCR. LOG(-VE) IS INVALID
8569 fmov.x %fp0,%fp1 # FP1 IS INPUT Z
8576 cmp.l %d1,&0x3ffe8000 # IS BOUNDS [1/2,3/2]?
8580 #--IF 1+Z > 3/2 OR 1+Z < 1/2, THEN X, WHICH IS ROUNDING 1+Z,
8594 fadd.x %fp1,%fp1 # FP1 IS 2Z
8595 fadd.s one(%pc),%fp0 # FP0 IS 1+X
8602 #--PRESERVE ALL THE INFORMATION. BECAUSE 1+Z IS IN [1/2,3/2],
8627 fadd.x %fp1,%fp0 # FP0 IS Y-F = (2-F)+2Z
8628 lea LOGTBL(%pc),%a0 # A0 IS ADDRESS OF 1/F
8630 fmov.s negone(%pc),%fp1 # FP1 IS K = -1
8643 fadd.x %fp1,%fp0 # FP0 IS Y-F
8646 add.l %d1,%a0 # A0 IS ADDRESS OF 1/F
8647 fmov.s zero(%pc),%fp1 # FP1 IS K = 0
8651 #--FPCR SAVED. D0 IS X IN COMPACT FORM.
8722 #--THIS IS THE USUAL CASE, |X| < 1
9099 #--ENTRY POINT FOR 2**(X), HERE X IS FINITE, NON-ZERO, AND NOT NAN'S
9128 and.l &0x3F,%d1 # D0 IS J
9131 asr.l &6,%d2 # d2 IS L, N = 64L + J
9133 asr.l &1,%d1 # D0 IS M
9134 sub.l %d1,%d2 # d2 IS M', N = 64(M+M') + J
9137 #--SUMMARY: a1 IS ADDRESS FOR THE LEADING PORTION OF 2^(J/64),
9138 #--D0 IS M WHERE N = 64(M+M') + J. NOTE THAT |M| <= 16140 BY DESIGN.
9156 fmul.x LOG2(%pc),%fp0 # FP0 IS R
9166 #--|X| IS SMALL, RETURN 1 + X
9173 #--|X| IS LARGE, GENERATE OVERFLOW IF X > 0; ELSE GENERATE UNDERFLOW
9196 #--ENTRY POINT FOR 10**(X), HERE X IS FINITE, NON-ZERO, AND NOT NAN'S
9225 and.l &0x3F,%d1 # D0 IS J
9228 asr.l &6,%d2 # d2 IS L, N = 64L + J
9230 asr.l &1,%d1 # D0 IS M
9231 sub.l %d1,%d2 # d2 IS M', N = 64(M+M') + J
9234 #--SUMMARY: a1 IS ADDRESS FOR THE LEADING PORTION OF 2^(J/64),
9235 #--D0 IS M WHERE N = 64(M+M') + J. NOTE THAT |M| <= 16140 BY DESIGN.
9258 fmul.x LOG10(%pc),%fp0 # FP0 IS R
9265 #--FP0 IS R. THE FOLLOWING CODE COMPUTES
9269 fmul.x %fp1,%fp1 # FP1 IS S = R*R
9271 fmov.d EXPA5(%pc),%fp2 # FP2 IS A5
9272 fmov.d EXPA4(%pc),%fp3 # FP3 IS A4
9274 fmul.x %fp1,%fp2 # FP2 IS S*A5
9275 fmul.x %fp1,%fp3 # FP3 IS S*A4
9277 fadd.d EXPA3(%pc),%fp2 # FP2 IS A3+S*A5
9278 fadd.d EXPA2(%pc),%fp3 # FP3 IS A2+S*A4
9280 fmul.x %fp1,%fp2 # FP2 IS S*(A3+S*A5)
9281 fmul.x %fp1,%fp3 # FP3 IS S*(A2+S*A4)
9283 fadd.d EXPA1(%pc),%fp2 # FP2 IS A1+S*(A3+S*A5)
9284 fmul.x %fp0,%fp3 # FP3 IS R*S*(A2+S*A4)
9286 fmul.x %fp1,%fp2 # FP2 IS S*(A1+S*(A3+S*A5))
9287 fadd.x %fp3,%fp0 # FP0 IS R+R*S*(A2+S*A4)
9288 fadd.x %fp2,%fp0 # FP0 IS EXP(R) - 1