Lines Matching +full:0 +full:x40030000
37 short 0x0000
39 short 0x0000
41 short 0x0000
44 short 0x0000
46 short 0x0000
48 short 0x0000
51 short 0x0000
53 short 0x0000
55 short 0x0000
58 short 0x0000
60 short 0x0000
62 short 0x0000
65 short 0x0000
67 short 0x0000
69 short 0x0000
72 short 0x0000
74 short 0x0000
76 short 0x0000
79 short 0x0000
81 short 0x0000
83 short 0x0000
86 short 0x0000
88 short 0x0000
90 short 0x0000
93 short 0x0000
95 short 0x0000
97 short 0x0000
100 short 0x0000
102 short 0x0000
104 short 0x0000
107 short 0x0000
109 short 0x0000
111 short 0x0000
114 short 0x0000
116 short 0x0000
118 short 0x0000
121 short 0x0000
123 short 0x0000
125 short 0x0000
128 short 0x0000
130 short 0x0000
132 short 0x0000
135 short 0x0000
137 short 0x0000
139 short 0x0000
142 short 0x0000
144 short 0x0000
146 short 0x0000
149 short 0x0000
151 short 0x0000
153 short 0x0000
156 short 0x0000
158 short 0x0000
160 short 0x0000
163 short 0x0000
165 short 0x0000
167 short 0x0000
170 short 0x0000
172 short 0x0000
174 short 0x0000
177 short 0x0000
179 short 0x0000
181 short 0x0000
184 short 0x0000
186 short 0x0000
188 short 0x0000
191 short 0x0000
193 short 0x0000
195 short 0x0000
198 short 0x0000
200 short 0x0000
202 short 0x0000
205 short 0x0000
207 short 0x0000
209 short 0x0000
212 short 0x0000
214 short 0x0000
216 short 0x0000
219 short 0x0000
221 short 0x0000
223 short 0x0000
226 short 0x0000
228 short 0x0000
230 short 0x0000
233 short 0x0000
235 short 0x0000
237 short 0x0000
240 short 0x0000
242 short 0x0000
244 short 0x0000
247 short 0x0000
249 short 0x0000
251 short 0x0000
254 short 0x0000
256 short 0x0000
258 short 0x0000
261 short 0x0000
263 short 0x0000
265 short 0x0000
268 align 0x400
278 set EXC_SR, 0x4 # stack status register
279 set EXC_PC, 0x6 # stack pc
280 set EXC_VOFF, 0xa # stacked vector offset
281 set EXC_EA, 0xc # stacked <ea>
283 set EXC_FP, 0x0 # frame pointer
297 set EXC_A0, EXC_AREGS+(0*4)
305 set EXC_D0, EXC_DREGS+(0*4)
307 set EXC_FP0, EXC_FPREGS+(0*12) # offset of saved fp0
312 set FP_SCR1_EX, FP_SCR1+0
317 set FP_SCR0, LV+68 # fp scratch 0
318 set FP_SCR0_EX, FP_SCR0+0
324 set FP_DST_EX, FP_DST+0
330 set FP_SRC_EX, FP_SRC+0
338 set FPSR_CC, USER_FPSR+0 # FPSR condition codes
365 set EXC_OPWORD, LV+0 # saved operation word
371 set FTEMP, 0 # offsets within an
372 set FTEMP_EX, 0 # extended precision
378 set LOCAL, 0 # offsets within an
379 set LOCAL_EX, 0 # extended precision
385 set DST, 0 # offsets within an
386 set DST_EX, 0 # extended precision
390 set SRC, 0 # offsets within an
391 set SRC_EX, 0 # extended precision
395 set SGL_LO, 0x3f81 # min sgl prec exponent
396 set SGL_HI, 0x407e # max sgl prec exponent
397 set DBL_LO, 0x3c01 # min dbl prec exponent
398 set DBL_HI, 0x43fe # max dbl prec exponent
399 set EXT_LO, 0x0 # min ext prec exponent
400 set EXT_HI, 0x7ffe # max ext prec exponent
402 set EXT_BIAS, 0x3fff # extended precision bias
403 set SGL_BIAS, 0x007f # single precision bias
404 set DBL_BIAS, 0x03ff # double precision bias
406 set NORM, 0x00 # operand type for STAG/DTAG
407 set ZERO, 0x01 # operand type for STAG/DTAG
408 set INF, 0x02 # operand type for STAG/DTAG
409 set QNAN, 0x03 # operand type for STAG/DTAG
410 set DENORM, 0x04 # operand type for STAG/DTAG
411 set SNAN, 0x05 # operand type for STAG/DTAG
412 set UNNORM, 0x06 # operand type for STAG/DTAG
417 set neg_bit, 0x3 # negative result
418 set z_bit, 0x2 # zero result
419 set inf_bit, 0x1 # infinite result
420 set nan_bit, 0x0 # NAN result
422 set q_sn_bit, 0x7 # sign bit of quotient byte
431 set inex1_bit, 0 # inexact result 1
442 set neg_mask, 0x08000000 # negative bit mask (lw)
443 set inf_mask, 0x02000000 # infinity bit mask (lw)
444 set z_mask, 0x04000000 # zero bit mask (lw)
445 set nan_mask, 0x01000000 # nan bit mask (lw)
447 set neg_bmask, 0x08 # negative bit mask (byte)
448 set inf_bmask, 0x02 # infinity bit mask (byte)
449 set z_bmask, 0x04 # zero bit mask (byte)
450 set nan_bmask, 0x01 # nan bit mask (byte)
452 set bsun_mask, 0x00008000 # bsun exception mask
453 set snan_mask, 0x00004000 # snan exception mask
454 set operr_mask, 0x00002000 # operr exception mask
455 set ovfl_mask, 0x00001000 # overflow exception mask
456 set unfl_mask, 0x00000800 # underflow exception mask
457 set dz_mask, 0x00000400 # dz exception mask
458 set inex2_mask, 0x00000200 # inex2 exception mask
459 set inex1_mask, 0x00000100 # inex1 exception mask
461 set aiop_mask, 0x00000080 # accrued illegal operation
462 set aovfl_mask, 0x00000040 # accrued overflow
463 set aunfl_mask, 0x00000020 # accrued underflow
464 set adz_mask, 0x00000010 # accrued divide by zero
465 set ainex_mask, 0x00000008 # accrued inexact
472 set nzi_mask, 0x01ffffff #clears N, Z, and I
493 set sign_bit, 0x7 # sign bit
494 set signan_bit, 0x6 # signalling nan bit
496 set sgl_thresh, 0x3f81 # minimum sgl exponent
497 set dbl_thresh, 0x3c01 # minimum dbl exponent
499 set x_mode, 0x0 # extended precision
500 set s_mode, 0x4 # single precision
501 set d_mode, 0x8 # double precision
503 set rn_mode, 0x0 # round-to-nearest
504 set rz_mode, 0x1 # round-to-zero
505 set rm_mode, 0x2 # round-tp-minus-infinity
506 set rp_mode, 0x3 # round-to-plus-infinity
514 set BSUN_VEC, 0xc0 # bsun vector offset
515 set INEX_VEC, 0xc4 # inexact vector offset
516 set DZ_VEC, 0xc8 # dz vector offset
517 set UNFL_VEC, 0xcc # unfl vector offset
518 set OPERR_VEC, 0xd0 # operr vector offset
519 set OVFL_VEC, 0xd4 # ovfl vector offset
520 set SNAN_VEC, 0xd8 # snan vector offset
525 set ftrapcc_flg, 0x01 # flag bit: ftrapcc exception
526 set fbsun_flg, 0x02 # flag bit: bsun exception
527 set mia7_flg, 0x04 # flag bit: (a7)+ <ea>
528 set mda7_flg, 0x08 # flag bit: -(a7) <ea>
529 set fmovm_flg, 0x40 # flag bit: fmovm instruction
530 set immed_flg, 0x80 # flag bit: &<data> <ea>
532 set ftrapcc_bit, 0x0
533 set fbsun_bit, 0x1
534 set mia7_bit, 0x2
535 set mda7_bit, 0x3
536 set immed_bit, 0x7
541 set FMUL_OP, 0x0 # fmul instr performed last
542 set FDIV_OP, 0x1 # fdiv performed last
543 set FADD_OP, 0x2 # fadd performed last
544 set FMOV_OP, 0x3 # fmov performed last
549 T1: long 0x40C62D38,0xD3D64634 # 16381 LOG2 LEAD
550 T2: long 0x3D6F90AE,0xB1E75CC7 # 16381 LOG2 TRAIL
552 PI: long 0x40000000,0xC90FDAA2,0x2168C235,0x00000000
553 PIBY2: long 0x3FFF0000,0xC90FDAA2,0x2168C235,0x00000000
556 long 0x3FE45F30,0x6DC9C883
565 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
567 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
569 fmov.l &0x0,%fpcr # zero FPCR
574 fmov.s 0x8(%a6),%fp0 # load sgl input
581 andi.l &0x00ff00ff,USER_FPSR(%a6)
612 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
614 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
622 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
624 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
626 fmov.l &0x0,%fpcr # zero FPCR
631 fmov.d 0x8(%a6),%fp0 # load dbl input
638 andi.l &0x00ff00ff,USER_FPSR(%a6)
670 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
672 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
680 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
682 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
684 fmov.l &0x0,%fpcr # zero FPCR
690 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
691 mov.l 0x8+0x4(%a6),0x4(%a0)
692 mov.l 0x8+0x8(%a6),0x8(%a0)
697 andi.l &0x00ff00ff,USER_FPSR(%a6)
728 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
730 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
742 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
744 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
746 fmov.l &0x0,%fpcr # zero FPCR
751 fmov.s 0x8(%a6),%fp0 # load sgl input
758 andi.l &0x00ff00ff,USER_FPSR(%a6)
789 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
791 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
799 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
801 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
803 fmov.l &0x0,%fpcr # zero FPCR
808 fmov.d 0x8(%a6),%fp0 # load dbl input
815 andi.l &0x00ff00ff,USER_FPSR(%a6)
847 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
849 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
857 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
859 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
861 fmov.l &0x0,%fpcr # zero FPCR
867 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
868 mov.l 0x8+0x4(%a6),0x4(%a0)
869 mov.l 0x8+0x8(%a6),0x8(%a0)
874 andi.l &0x00ff00ff,USER_FPSR(%a6)
905 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
907 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
919 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
921 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
923 fmov.l &0x0,%fpcr # zero FPCR
928 fmov.s 0x8(%a6),%fp0 # load sgl input
935 andi.l &0x00ff00ff,USER_FPSR(%a6)
966 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
968 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
976 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
978 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
980 fmov.l &0x0,%fpcr # zero FPCR
985 fmov.d 0x8(%a6),%fp0 # load dbl input
992 andi.l &0x00ff00ff,USER_FPSR(%a6)
1024 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1026 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1034 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1036 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1038 fmov.l &0x0,%fpcr # zero FPCR
1044 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
1045 mov.l 0x8+0x4(%a6),0x4(%a0)
1046 mov.l 0x8+0x8(%a6),0x8(%a0)
1051 andi.l &0x00ff00ff,USER_FPSR(%a6)
1082 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1084 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1096 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1098 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1100 fmov.l &0x0,%fpcr # zero FPCR
1105 fmov.s 0x8(%a6),%fp0 # load sgl input
1112 andi.l &0x00ff00ff,USER_FPSR(%a6)
1143 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1145 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1153 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1155 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1157 fmov.l &0x0,%fpcr # zero FPCR
1162 fmov.d 0x8(%a6),%fp0 # load dbl input
1169 andi.l &0x00ff00ff,USER_FPSR(%a6)
1201 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1203 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1211 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1213 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1215 fmov.l &0x0,%fpcr # zero FPCR
1221 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
1222 mov.l 0x8+0x4(%a6),0x4(%a0)
1223 mov.l 0x8+0x8(%a6),0x8(%a0)
1228 andi.l &0x00ff00ff,USER_FPSR(%a6)
1259 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1261 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1273 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1275 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1277 fmov.l &0x0,%fpcr # zero FPCR
1282 fmov.s 0x8(%a6),%fp0 # load sgl input
1289 andi.l &0x00ff00ff,USER_FPSR(%a6)
1320 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1322 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1330 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1332 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1334 fmov.l &0x0,%fpcr # zero FPCR
1339 fmov.d 0x8(%a6),%fp0 # load dbl input
1346 andi.l &0x00ff00ff,USER_FPSR(%a6)
1378 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1380 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1388 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1390 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1392 fmov.l &0x0,%fpcr # zero FPCR
1398 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
1399 mov.l 0x8+0x4(%a6),0x4(%a0)
1400 mov.l 0x8+0x8(%a6),0x8(%a0)
1405 andi.l &0x00ff00ff,USER_FPSR(%a6)
1436 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1438 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1450 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1452 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1454 fmov.l &0x0,%fpcr # zero FPCR
1459 fmov.s 0x8(%a6),%fp0 # load sgl input
1466 andi.l &0x00ff00ff,USER_FPSR(%a6)
1497 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1499 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1507 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1509 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1511 fmov.l &0x0,%fpcr # zero FPCR
1516 fmov.d 0x8(%a6),%fp0 # load dbl input
1523 andi.l &0x00ff00ff,USER_FPSR(%a6)
1555 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1557 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1565 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1567 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1569 fmov.l &0x0,%fpcr # zero FPCR
1575 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
1576 mov.l 0x8+0x4(%a6),0x4(%a0)
1577 mov.l 0x8+0x8(%a6),0x8(%a0)
1582 andi.l &0x00ff00ff,USER_FPSR(%a6)
1613 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1615 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1627 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1629 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1631 fmov.l &0x0,%fpcr # zero FPCR
1636 fmov.s 0x8(%a6),%fp0 # load sgl input
1643 andi.l &0x00ff00ff,USER_FPSR(%a6)
1674 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1676 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1684 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1686 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1688 fmov.l &0x0,%fpcr # zero FPCR
1693 fmov.d 0x8(%a6),%fp0 # load dbl input
1700 andi.l &0x00ff00ff,USER_FPSR(%a6)
1732 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1734 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1742 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1744 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1746 fmov.l &0x0,%fpcr # zero FPCR
1752 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
1753 mov.l 0x8+0x4(%a6),0x4(%a0)
1754 mov.l 0x8+0x8(%a6),0x8(%a0)
1759 andi.l &0x00ff00ff,USER_FPSR(%a6)
1790 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1792 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1804 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1806 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1808 fmov.l &0x0,%fpcr # zero FPCR
1813 fmov.s 0x8(%a6),%fp0 # load sgl input
1820 andi.l &0x00ff00ff,USER_FPSR(%a6)
1851 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1853 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1861 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1863 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1865 fmov.l &0x0,%fpcr # zero FPCR
1870 fmov.d 0x8(%a6),%fp0 # load dbl input
1877 andi.l &0x00ff00ff,USER_FPSR(%a6)
1909 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1911 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1919 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1921 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1923 fmov.l &0x0,%fpcr # zero FPCR
1929 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
1930 mov.l 0x8+0x4(%a6),0x4(%a0)
1931 mov.l 0x8+0x8(%a6),0x8(%a0)
1936 andi.l &0x00ff00ff,USER_FPSR(%a6)
1967 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1969 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
1981 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
1983 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
1985 fmov.l &0x0,%fpcr # zero FPCR
1990 fmov.s 0x8(%a6),%fp0 # load sgl input
1997 andi.l &0x00ff00ff,USER_FPSR(%a6)
2028 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2030 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2038 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2040 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2042 fmov.l &0x0,%fpcr # zero FPCR
2047 fmov.d 0x8(%a6),%fp0 # load dbl input
2054 andi.l &0x00ff00ff,USER_FPSR(%a6)
2086 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2088 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2096 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2098 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2100 fmov.l &0x0,%fpcr # zero FPCR
2106 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
2107 mov.l 0x8+0x4(%a6),0x4(%a0)
2108 mov.l 0x8+0x8(%a6),0x8(%a0)
2113 andi.l &0x00ff00ff,USER_FPSR(%a6)
2144 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2146 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2158 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2160 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2162 fmov.l &0x0,%fpcr # zero FPCR
2167 fmov.s 0x8(%a6),%fp0 # load sgl input
2174 andi.l &0x00ff00ff,USER_FPSR(%a6)
2205 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2207 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2215 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2217 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2219 fmov.l &0x0,%fpcr # zero FPCR
2224 fmov.d 0x8(%a6),%fp0 # load dbl input
2231 andi.l &0x00ff00ff,USER_FPSR(%a6)
2263 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2265 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2273 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2275 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2277 fmov.l &0x0,%fpcr # zero FPCR
2283 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
2284 mov.l 0x8+0x4(%a6),0x4(%a0)
2285 mov.l 0x8+0x8(%a6),0x8(%a0)
2290 andi.l &0x00ff00ff,USER_FPSR(%a6)
2321 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2323 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2335 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2337 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2339 fmov.l &0x0,%fpcr # zero FPCR
2344 fmov.s 0x8(%a6),%fp0 # load sgl input
2351 andi.l &0x00ff00ff,USER_FPSR(%a6)
2382 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2384 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2392 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2394 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2396 fmov.l &0x0,%fpcr # zero FPCR
2401 fmov.d 0x8(%a6),%fp0 # load dbl input
2408 andi.l &0x00ff00ff,USER_FPSR(%a6)
2440 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2442 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2450 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2452 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2454 fmov.l &0x0,%fpcr # zero FPCR
2460 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
2461 mov.l 0x8+0x4(%a6),0x4(%a0)
2462 mov.l 0x8+0x8(%a6),0x8(%a0)
2467 andi.l &0x00ff00ff,USER_FPSR(%a6)
2498 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2500 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2512 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2514 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2516 fmov.l &0x0,%fpcr # zero FPCR
2521 fmov.s 0x8(%a6),%fp0 # load sgl input
2528 andi.l &0x00ff00ff,USER_FPSR(%a6)
2559 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2561 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2569 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2571 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2573 fmov.l &0x0,%fpcr # zero FPCR
2578 fmov.d 0x8(%a6),%fp0 # load dbl input
2585 andi.l &0x00ff00ff,USER_FPSR(%a6)
2617 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2619 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2627 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2629 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2631 fmov.l &0x0,%fpcr # zero FPCR
2637 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
2638 mov.l 0x8+0x4(%a6),0x4(%a0)
2639 mov.l 0x8+0x8(%a6),0x8(%a0)
2644 andi.l &0x00ff00ff,USER_FPSR(%a6)
2675 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2677 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2689 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2691 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2693 fmov.l &0x0,%fpcr # zero FPCR
2698 fmov.s 0x8(%a6),%fp0 # load sgl input
2705 andi.l &0x00ff00ff,USER_FPSR(%a6)
2736 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2738 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2746 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2748 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2750 fmov.l &0x0,%fpcr # zero FPCR
2755 fmov.d 0x8(%a6),%fp0 # load dbl input
2762 andi.l &0x00ff00ff,USER_FPSR(%a6)
2794 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2796 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2804 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2806 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2808 fmov.l &0x0,%fpcr # zero FPCR
2814 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
2815 mov.l 0x8+0x4(%a6),0x4(%a0)
2816 mov.l 0x8+0x8(%a6),0x8(%a0)
2821 andi.l &0x00ff00ff,USER_FPSR(%a6)
2852 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2854 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2866 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2868 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2870 fmov.l &0x0,%fpcr # zero FPCR
2875 fmov.s 0x8(%a6),%fp0 # load sgl input
2882 andi.l &0x00ff00ff,USER_FPSR(%a6)
2913 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2915 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2923 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2925 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2927 fmov.l &0x0,%fpcr # zero FPCR
2932 fmov.d 0x8(%a6),%fp0 # load dbl input
2939 andi.l &0x00ff00ff,USER_FPSR(%a6)
2971 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2973 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
2981 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2983 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
2985 fmov.l &0x0,%fpcr # zero FPCR
2991 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
2992 mov.l 0x8+0x4(%a6),0x4(%a0)
2993 mov.l 0x8+0x8(%a6),0x8(%a0)
2998 andi.l &0x00ff00ff,USER_FPSR(%a6)
3029 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3031 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3043 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3045 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3047 fmov.l &0x0,%fpcr # zero FPCR
3052 fmov.s 0x8(%a6),%fp0 # load sgl input
3059 andi.l &0x00ff00ff,USER_FPSR(%a6)
3090 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3092 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3100 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3102 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3104 fmov.l &0x0,%fpcr # zero FPCR
3109 fmov.d 0x8(%a6),%fp0 # load dbl input
3116 andi.l &0x00ff00ff,USER_FPSR(%a6)
3148 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3150 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3158 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3160 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3162 fmov.l &0x0,%fpcr # zero FPCR
3168 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
3169 mov.l 0x8+0x4(%a6),0x4(%a0)
3170 mov.l 0x8+0x8(%a6),0x8(%a0)
3175 andi.l &0x00ff00ff,USER_FPSR(%a6)
3206 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3208 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3220 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3222 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3224 fmov.l &0x0,%fpcr # zero FPCR
3229 fmov.s 0x8(%a6),%fp0 # load sgl input
3236 andi.l &0x00ff00ff,USER_FPSR(%a6)
3267 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3269 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3277 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3279 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3281 fmov.l &0x0,%fpcr # zero FPCR
3286 fmov.d 0x8(%a6),%fp0 # load dbl input
3293 andi.l &0x00ff00ff,USER_FPSR(%a6)
3325 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3327 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3335 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3337 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3339 fmov.l &0x0,%fpcr # zero FPCR
3345 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
3346 mov.l 0x8+0x4(%a6),0x4(%a0)
3347 mov.l 0x8+0x8(%a6),0x8(%a0)
3352 andi.l &0x00ff00ff,USER_FPSR(%a6)
3383 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3385 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3397 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3399 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3401 fmov.l &0x0,%fpcr # zero FPCR
3406 fmov.s 0x8(%a6),%fp0 # load sgl input
3413 andi.l &0x00ff00ff,USER_FPSR(%a6)
3444 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3446 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3454 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3456 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3458 fmov.l &0x0,%fpcr # zero FPCR
3463 fmov.d 0x8(%a6),%fp0 # load dbl input
3470 andi.l &0x00ff00ff,USER_FPSR(%a6)
3502 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3504 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3512 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3514 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3516 fmov.l &0x0,%fpcr # zero FPCR
3522 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
3523 mov.l 0x8+0x4(%a6),0x4(%a0)
3524 mov.l 0x8+0x8(%a6),0x8(%a0)
3529 andi.l &0x00ff00ff,USER_FPSR(%a6)
3560 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3562 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3574 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3576 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3578 fmov.l &0x0,%fpcr # zero FPCR
3583 fmov.s 0x8(%a6),%fp0 # load sgl input
3590 andi.l &0x00ff00ff,USER_FPSR(%a6)
3621 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3623 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3631 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3633 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3635 fmov.l &0x0,%fpcr # zero FPCR
3640 fmov.d 0x8(%a6),%fp0 # load dbl input
3647 andi.l &0x00ff00ff,USER_FPSR(%a6)
3679 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3681 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3689 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3691 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3693 fmov.l &0x0,%fpcr # zero FPCR
3699 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
3700 mov.l 0x8+0x4(%a6),0x4(%a0)
3701 mov.l 0x8+0x8(%a6),0x8(%a0)
3706 andi.l &0x00ff00ff,USER_FPSR(%a6)
3737 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3739 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3751 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3753 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3755 fmov.l &0x0,%fpcr # zero FPCR
3760 fmov.s 0x8(%a6),%fp0 # load sgl input
3767 andi.l &0x00ff00ff,USER_FPSR(%a6)
3798 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3800 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3808 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3810 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3812 fmov.l &0x0,%fpcr # zero FPCR
3817 fmov.d 0x8(%a6),%fp0 # load dbl input
3824 andi.l &0x00ff00ff,USER_FPSR(%a6)
3856 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3858 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3866 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3868 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3870 fmov.l &0x0,%fpcr # zero FPCR
3876 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
3877 mov.l 0x8+0x4(%a6),0x4(%a0)
3878 mov.l 0x8+0x8(%a6),0x8(%a0)
3883 andi.l &0x00ff00ff,USER_FPSR(%a6)
3914 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3916 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3928 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3930 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3932 fmov.l &0x0,%fpcr # zero FPCR
3937 fmov.s 0x8(%a6),%fp0 # load sgl input
3944 andi.l &0x00ff00ff,USER_FPSR(%a6)
3975 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3977 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
3985 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3987 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
3989 fmov.l &0x0,%fpcr # zero FPCR
3994 fmov.d 0x8(%a6),%fp0 # load dbl input
4001 andi.l &0x00ff00ff,USER_FPSR(%a6)
4033 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4035 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
4043 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4045 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4047 fmov.l &0x0,%fpcr # zero FPCR
4053 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
4054 mov.l 0x8+0x4(%a6),0x4(%a0)
4055 mov.l 0x8+0x8(%a6),0x8(%a0)
4060 andi.l &0x00ff00ff,USER_FPSR(%a6)
4091 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4093 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
4105 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4107 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4109 fmov.l &0x0,%fpcr # zero FPCR
4114 fmov.s 0x8(%a6),%fp0 # load sgl input
4121 andi.l &0x00ff00ff,USER_FPSR(%a6)
4152 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4154 fmovm.x &0x03,-(%sp) # store off fp0/fp1
4155 fmovm.x (%sp)+,&0x40 # fp0 now in fp1
4156 fmovm.x (%sp)+,&0x80 # fp1 now in fp0
4164 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4166 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4168 fmov.l &0x0,%fpcr # zero FPCR
4173 fmov.d 0x8(%a6),%fp0 # load dbl input
4180 andi.l &0x00ff00ff,USER_FPSR(%a6)
4212 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4214 fmovm.x &0x03,-(%sp) # store off fp0/fp1
4215 fmovm.x (%sp)+,&0x40 # fp0 now in fp1
4216 fmovm.x (%sp)+,&0x80 # fp1 now in fp0
4224 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4226 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4228 fmov.l &0x0,%fpcr # zero FPCR
4234 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext input
4235 mov.l 0x8+0x4(%a6),0x4(%a0)
4236 mov.l 0x8+0x8(%a6),0x8(%a0)
4241 andi.l &0x00ff00ff,USER_FPSR(%a6)
4272 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4274 fmovm.x &0x03,-(%sp) # store off fp0/fp1
4275 fmovm.x (%sp)+,&0x40 # fp0 now in fp1
4276 fmovm.x (%sp)+,&0x80 # fp1 now in fp0
4288 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4290 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4292 fmov.l &0x0,%fpcr # zero FPCR
4297 fmov.s 0x8(%a6),%fp0 # load sgl dst
4303 fmov.s 0xc(%a6),%fp0 # load sgl src
4310 andi.l &0x00ff00ff,USER_FPSR(%a6)
4344 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4346 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
4354 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4356 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4358 fmov.l &0x0,%fpcr # zero FPCR
4363 fmov.d 0x8(%a6),%fp0 # load dbl dst
4369 fmov.d 0x10(%a6),%fp0 # load dbl src
4376 andi.l &0x00ff00ff,USER_FPSR(%a6)
4410 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4412 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
4420 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4422 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4424 fmov.l &0x0,%fpcr # zero FPCR
4430 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext dst
4431 mov.l 0x8+0x4(%a6),0x4(%a0)
4432 mov.l 0x8+0x8(%a6),0x8(%a0)
4437 mov.l 0x14+0x0(%a6),0x0(%a0) # load ext src
4438 mov.l 0x14+0x4(%a6),0x4(%a0)
4439 mov.l 0x14+0x8(%a6),0x8(%a0)
4444 andi.l &0x00ff00ff,USER_FPSR(%a6)
4478 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4480 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
4492 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4494 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4496 fmov.l &0x0,%fpcr # zero FPCR
4501 fmov.s 0x8(%a6),%fp0 # load sgl dst
4507 fmov.s 0xc(%a6),%fp0 # load sgl src
4514 andi.l &0x00ff00ff,USER_FPSR(%a6)
4548 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4550 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
4558 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4560 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4562 fmov.l &0x0,%fpcr # zero FPCR
4567 fmov.d 0x8(%a6),%fp0 # load dbl dst
4573 fmov.d 0x10(%a6),%fp0 # load dbl src
4580 andi.l &0x00ff00ff,USER_FPSR(%a6)
4614 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4616 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
4624 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4626 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4628 fmov.l &0x0,%fpcr # zero FPCR
4634 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext dst
4635 mov.l 0x8+0x4(%a6),0x4(%a0)
4636 mov.l 0x8+0x8(%a6),0x8(%a0)
4641 mov.l 0x14+0x0(%a6),0x0(%a0) # load ext src
4642 mov.l 0x14+0x4(%a6),0x4(%a0)
4643 mov.l 0x14+0x8(%a6),0x8(%a0)
4648 andi.l &0x00ff00ff,USER_FPSR(%a6)
4682 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4684 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
4696 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4698 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4700 fmov.l &0x0,%fpcr # zero FPCR
4705 fmov.s 0x8(%a6),%fp0 # load sgl dst
4711 fmov.s 0xc(%a6),%fp0 # load sgl src
4718 andi.l &0x00ff00ff,USER_FPSR(%a6)
4752 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4754 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
4762 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4764 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4766 fmov.l &0x0,%fpcr # zero FPCR
4771 fmov.d 0x8(%a6),%fp0 # load dbl dst
4777 fmov.d 0x10(%a6),%fp0 # load dbl src
4784 andi.l &0x00ff00ff,USER_FPSR(%a6)
4818 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4820 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
4828 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
4830 fmovm.x &0xc0,EXC_FP0(%a6) # save fp0/fp1
4832 fmov.l &0x0,%fpcr # zero FPCR
4838 mov.l 0x8+0x0(%a6),0x0(%a0) # load ext dst
4839 mov.l 0x8+0x4(%a6),0x4(%a0)
4840 mov.l 0x8+0x8(%a6),0x8(%a0)
4845 mov.l 0x14+0x0(%a6),0x0(%a0) # load ext src
4846 mov.l 0x14+0x4(%a6),0x4(%a0)
4847 mov.l 0x14+0x8(%a6),0x8(%a0)
4852 andi.l &0x00ff00ff,USER_FPSR(%a6)
4886 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
4888 fmovm.x EXC_FP1(%a6),&0x40 # restore fp1
4921 # 1. If SIN is invoked, set AdjN := 0; otherwise, set AdjN := 1. #
4926 # k = N mod 4, so in particular, k = 0,1,2,or 3. #
4954 # k = N mod 4, so in particular, k = 0,1,2,or 3. #
4979 SINA7: long 0xBD6AAA77,0xCCC994F5
4980 SINA6: long 0x3DE61209,0x7AAE8DA1
4981 SINA5: long 0xBE5AE645,0x2A118AE4
4982 SINA4: long 0x3EC71DE3,0xA5341531
4983 SINA3: long 0xBF2A01A0,0x1A018B59,0x00000000,0x00000000
4984 SINA2: long 0x3FF80000,0x88888888,0x888859AF,0x00000000
4985 SINA1: long 0xBFFC0000,0xAAAAAAAA,0xAAAAAA99,0x00000000
4987 COSB8: long 0x3D2AC4D0,0xD6011EE3
4988 COSB7: long 0xBDA9396F,0x9F45AC19
4989 COSB6: long 0x3E21EED9,0x0612C972
4990 COSB5: long 0xBE927E4F,0xB79D9FCF
4991 COSB4: long 0x3EFA01A0,0x1A01D423,0x00000000,0x00000000
4992 COSB3: long 0xBFF50000,0xB60B60B6,0x0B61D438,0x00000000
4993 COSB2: long 0x3FFA0000,0xAAAAAAAA,0xAAAAAB5E
4994 COSB1: long 0xBF000000
5016 mov.l &0,ADJN(%a6) # yes; SET ADJN TO 0
5034 and.l &0x7FFFFFFF,%d1 # strip sign
5036 cmpi.l %d1,&0x3FD78000 # is |X| >= 2**(-40)?
5041 cmp.l %d1,&0x4004BC7E # is |X| < 15 PI?
5051 lea PITBL+0x200(%pc),%a1 # TABLE OF N*PI/2, N = -32,...,32
5071 cmp.l %d1,&0
5083 fmovm.x &0x0c,-(%sp) # save fp2/fp3
5095 and.l &0x80000000,%d1
5121 fmovm.x (%sp)+,&0x30 # restore fp2/fp3
5137 fmovm.x &0x0c,-(%sp) # save fp2/fp3
5149 and.l &0x80000000,%d1
5155 and.l &0x80000000,%d1
5159 or.l &0x3F800000,%d1 # D0 IS SGN IN SINGLE
5183 fmovm.x (%sp)+,&0x30 # restore fp2/fp3
5195 cmp.l %d1,&0x3FFF8000
5200 cmp.l %d1,&0
5206 # mov.w &0x0000,XDCARE(%a6) # JUST IN CASE
5214 fmov.s &0x3F800000,%fp0 # fp0 = 1.0
5216 fadd.s &0x80800000,%fp0 # last inst - possible exception set
5229 fmov.s &0x3F800000,%fp0 # fp0 = 1.0
5244 and.l &0x7FFFFFFF,%d1 # COMPACTIFY X
5246 cmp.l %d1,&0x3FD78000 # |X| >= 2**(-40)?
5251 cmp.l %d1,&0x4004BC7E # |X| < 15 PI?
5263 lea PITBL+0x200(%pc),%a1 # TABLE OF N*PI/2, N = -32,...,32
5279 cmp.l %d1,&0 # D0 < 0 IFF N IS ODD
5284 fmovm.x &0x04,-(%sp) # save fp2
5296 and.l &0x80000000,%d2
5298 and.l &0x80000000,%d2
5308 and.l &0x80000000,%d1
5309 mov.l &0x3F800000,POSNEG1(%a6)
5348 fmovm.x (%sp)+,&0x20 # restore fp2
5358 fmovm.x &0x04,-(%sp) # save fp2
5371 and.l &0x80000000,%d1
5381 or.l &0x3F800000,%d1
5421 fmovm.x (%sp)+,&0x20 # restore fp2
5432 cmp.l %d1,&0x3FFF8000
5438 # mov.w &0x0000,XDCARE(%a6)
5439 fmov.s &0x3F800000,%fp1
5442 fsub.s &0x00800000,%fp1
5455 fmov.s &0x3F800000,%fp1
5466 fmovm.x &0x3c,-(%sp) # save {fp2-fp5}
5468 fmov.s &0x00000000,%fp1 # fp1 = 0
5474 cmp.l %d1,&0x7ffeffff # is arg dangerously large?
5478 mov.w &0x7ffe,FP_SCR0_EX(%a6)
5479 mov.l &0xc90fdaa2,FP_SCR0_HI(%a6)
5483 mov.w &0x7fdc,FP_SCR1_EX(%a6)
5484 mov.l &0x85a308d3,FP_SCR1_HI(%a6)
5490 or.b &0x80,FP_SCR0_EX(%a6) # positive arg
5491 or.b &0x80,FP_SCR1_EX(%a6)
5506 and.l &0x00007FFF,%d1
5507 sub.l &0x00003FFF,%d1 # d0 = K
5512 mov.b &0,ENDFLAG(%a6)
5515 clr.l %d1 # d0 = L := 0
5525 mov.l &0x00003FFE,%d2 # BIASED EXP OF 2/PI
5528 mov.l &0xA2F9836E,FP_SCR0_HI(%a6)
5529 mov.l &0x4E44152A,FP_SCR0_LO(%a6)
5542 and.l &0x80000000,%d2
5543 or.l &0x5F000000,%d2 # d2 = SIGN(INARG)*2**63 IN SGL
5552 add.l &0x00003FFF,%d2 # BIASED EXP OF 2**L * (PI/2)
5554 mov.l &0xC90FDAA2,FP_SCR0_HI(%a6)
5557 add.l &0x00003FDD,%d1
5559 mov.l &0x85A308D3,FP_SCR1_HI(%a6)
5587 cmp.b %d1,&0
5598 fmovm.x (%sp)+,&0x3c # restore {fp2-fp5}
5628 # k = N mod 2, so in particular, k = 0 or 1. #
5654 long 0x3EA0B759,0xF50F8688
5656 long 0xBEF2BAA5,0xA8924F04
5659 long 0xBF346F59,0xB39BA65F,0x00000000,0x00000000
5662 long 0x3FF60000,0xE073D3FC,0x199C4A00,0x00000000
5665 long 0x3FF90000,0xD23CD684,0x15D95FA1,0x00000000
5668 long 0xBFFC0000,0x8895A6C5,0xFB423BCA,0x00000000
5671 long 0xBFFD0000,0xEEF57E0D,0xA84BC8CE,0x00000000
5674 long 0x3FFC0000,0xA2F9836E,0x4E44152A,0x00000000
5677 long 0x40010000,0xC90FDAA2,0x00000000,0x00000000
5679 long 0x3FDF0000,0x85A308D4,0x00000000,0x00000000
5686 long 0xC0040000,0xC90FDAA2,0x2168C235,0x21800000
5687 long 0xC0040000,0xC2C75BCD,0x105D7C23,0xA0D00000
5688 long 0xC0040000,0xBC7EDCF7,0xFF523611,0xA1E80000
5689 long 0xC0040000,0xB6365E22,0xEE46F000,0x21480000
5690 long 0xC0040000,0xAFEDDF4D,0xDD3BA9EE,0xA1200000
5691 long 0xC0040000,0xA9A56078,0xCC3063DD,0x21FC0000
5692 long 0xC0040000,0xA35CE1A3,0xBB251DCB,0x21100000
5693 long 0xC0040000,0x9D1462CE,0xAA19D7B9,0xA1580000
5694 long 0xC0040000,0x96CBE3F9,0x990E91A8,0x21E00000
5695 long 0xC0040000,0x90836524,0x88034B96,0x20B00000
5696 long 0xC0040000,0x8A3AE64F,0x76F80584,0xA1880000
5697 long 0xC0040000,0x83F2677A,0x65ECBF73,0x21C40000
5698 long 0xC0030000,0xFB53D14A,0xA9C2F2C2,0x20000000
5699 long 0xC0030000,0xEEC2D3A0,0x87AC669F,0x21380000
5700 long 0xC0030000,0xE231D5F6,0x6595DA7B,0xA1300000
5701 long 0xC0030000,0xD5A0D84C,0x437F4E58,0x9FC00000
5702 long 0xC0030000,0xC90FDAA2,0x2168C235,0x21000000
5703 long 0xC0030000,0xBC7EDCF7,0xFF523611,0xA1680000
5704 long 0xC0030000,0xAFEDDF4D,0xDD3BA9EE,0xA0A00000
5705 long 0xC0030000,0xA35CE1A3,0xBB251DCB,0x20900000
5706 long 0xC0030000,0x96CBE3F9,0x990E91A8,0x21600000
5707 long 0xC0030000,0x8A3AE64F,0x76F80584,0xA1080000
5708 long 0xC0020000,0xFB53D14A,0xA9C2F2C2,0x1F800000
5709 long 0xC0020000,0xE231D5F6,0x6595DA7B,0xA0B00000
5710 long 0xC0020000,0xC90FDAA2,0x2168C235,0x20800000
5711 long 0xC0020000,0xAFEDDF4D,0xDD3BA9EE,0xA0200000
5712 long 0xC0020000,0x96CBE3F9,0x990E91A8,0x20E00000
5713 long 0xC0010000,0xFB53D14A,0xA9C2F2C2,0x1F000000
5714 long 0xC0010000,0xC90FDAA2,0x2168C235,0x20000000
5715 long 0xC0010000,0x96CBE3F9,0x990E91A8,0x20600000
5716 long 0xC0000000,0xC90FDAA2,0x2168C235,0x1F800000
5717 long 0xBFFF0000,0xC90FDAA2,0x2168C235,0x1F000000
5718 long 0x00000000,0x00000000,0x00000000,0x00000000
5719 long 0x3FFF0000,0xC90FDAA2,0x2168C235,0x9F000000
5720 long 0x40000000,0xC90FDAA2,0x2168C235,0x9F800000
5721 long 0x40010000,0x96CBE3F9,0x990E91A8,0xA0600000
5722 long 0x40010000,0xC90FDAA2,0x2168C235,0xA0000000
5723 long 0x40010000,0xFB53D14A,0xA9C2F2C2,0x9F000000
5724 long 0x40020000,0x96CBE3F9,0x990E91A8,0xA0E00000
5725 long 0x40020000,0xAFEDDF4D,0xDD3BA9EE,0x20200000
5726 long 0x40020000,0xC90FDAA2,0x2168C235,0xA0800000
5727 long 0x40020000,0xE231D5F6,0x6595DA7B,0x20B00000
5728 long 0x40020000,0xFB53D14A,0xA9C2F2C2,0x9F800000
5729 long 0x40030000,0x8A3AE64F,0x76F80584,0x21080000
5730 long 0x40030000,0x96CBE3F9,0x990E91A8,0xA1600000
5731 long 0x40030000,0xA35CE1A3,0xBB251DCB,0xA0900000
5732 long 0x40030000,0xAFEDDF4D,0xDD3BA9EE,0x20A00000
5733 long 0x40030000,0xBC7EDCF7,0xFF523611,0x21680000
5734 long 0x40030000,0xC90FDAA2,0x2168C235,0xA1000000
5735 long 0x40030000,0xD5A0D84C,0x437F4E58,0x1FC00000
5736 long 0x40030000,0xE231D5F6,0x6595DA7B,0x21300000
5737 long 0x40030000,0xEEC2D3A0,0x87AC669F,0xA1380000
5738 long 0x40030000,0xFB53D14A,0xA9C2F2C2,0xA0000000
5739 long 0x40040000,0x83F2677A,0x65ECBF73,0xA1C40000
5740 long 0x40040000,0x8A3AE64F,0x76F80584,0x21880000
5741 long 0x40040000,0x90836524,0x88034B96,0xA0B00000
5742 long 0x40040000,0x96CBE3F9,0x990E91A8,0xA1E00000
5743 long 0x40040000,0x9D1462CE,0xAA19D7B9,0x21580000
5744 long 0x40040000,0xA35CE1A3,0xBB251DCB,0xA1100000
5745 long 0x40040000,0xA9A56078,0xCC3063DD,0xA1FC0000
5746 long 0x40040000,0xAFEDDF4D,0xDD3BA9EE,0x21200000
5747 long 0x40040000,0xB6365E22,0xEE46F000,0xA1480000
5748 long 0x40040000,0xBC7EDCF7,0xFF523611,0x21E80000
5749 long 0x40040000,0xC2C75BCD,0x105D7C23,0x20D00000
5750 long 0x40040000,0xC90FDAA2,0x2168C235,0xA1800000
5764 and.l &0x7FFFFFFF,%d1
5766 cmp.l %d1,&0x3FD78000 # |X| >= 2**(-40)?
5770 cmp.l %d1,&0x4004BC7E # |X| < 15 PI?
5780 lea.l PITBL+0x200(%pc),%a1 # TABLE OF N*PI/2, N = -32,...,32
5792 and.l &0x80000000,%d1 # D0 WAS ODD IFF D0 < 0
5795 fmovm.x &0x0c,-(%sp) # save fp2,fp3
5797 cmp.l %d1,&0
5828 fadd.s &0x3F800000,%fp1 # 1+S(Q1+...)
5830 fmovm.x (%sp)+,&0x30 # restore fp2,fp3
5864 fadd.s &0x3F800000,%fp0 # 1+S(Q1+...)
5866 fmovm.x (%sp)+,&0x30 # restore fp2,fp3
5869 eor.l &0x80000000,(%sp)
5878 cmp.l %d1,&0x3FFF8000
5897 fmovm.x &0x3c,-(%sp) # save {fp2-fp5}
5899 fmov.s &0x00000000,%fp1 # fp1 = 0
5905 cmp.l %d1,&0x7ffeffff # is arg dangerously large?
5909 mov.w &0x7ffe,FP_SCR0_EX(%a6)
5910 mov.l &0xc90fdaa2,FP_SCR0_HI(%a6)
5914 mov.w &0x7fdc,FP_SCR1_EX(%a6)
5915 mov.l &0x85a308d3,FP_SCR1_HI(%a6)
5921 or.b &0x80,FP_SCR0_EX(%a6) # positive arg
5922 or.b &0x80,FP_SCR1_EX(%a6)
5937 and.l &0x00007FFF,%d1
5938 sub.l &0x00003FFF,%d1 # d0 = K
5943 mov.b &0,ENDFLAG(%a6)
5946 clr.l %d1 # d0 = L := 0
5956 mov.l &0x00003FFE,%d2 # BIASED EXP OF 2/PI
5959 mov.l &0xA2F9836E,FP_SCR0_HI(%a6)
5960 mov.l &0x4E44152A,FP_SCR0_LO(%a6)
5973 and.l &0x80000000,%d2
5974 or.l &0x5F000000,%d2 # d2 = SIGN(INARG)*2**63 IN SGL
5983 add.l &0x00003FFF,%d2 # BIASED EXP OF 2**L * (PI/2)
5985 mov.l &0xC90FDAA2,FP_SCR0_HI(%a6)
5988 add.l &0x00003FDD,%d1
5990 mov.l &0x85A308D3,FP_SCR1_HI(%a6)
6018 cmp.b %d1,&0
6029 fmovm.x (%sp)+,&0x3c # restore {fp2-fp5}
6077 ATANA3: long 0xBFF6687E,0x314987D8
6078 ATANA2: long 0x4002AC69,0x34A26DB3
6079 ATANA1: long 0xBFC2476F,0x4E1DA28E
6081 ATANB6: long 0x3FB34444,0x7F876989
6082 ATANB5: long 0xBFB744EE,0x7FAF45DB
6083 ATANB4: long 0x3FBC71C6,0x46940220
6084 ATANB3: long 0xBFC24924,0x921872F9
6085 ATANB2: long 0x3FC99999,0x99998FA9
6086 ATANB1: long 0xBFD55555,0x55555555
6088 ATANC5: long 0xBFB70BF3,0x98539E6A
6089 ATANC4: long 0x3FBC7187,0x962D1D7D
6090 ATANC3: long 0xBFC24924,0x827107B8
6091 ATANC2: long 0x3FC99999,0x9996263E
6092 ATANC1: long 0xBFD55555,0x55555536
6094 PPIBY2: long 0x3FFF0000,0xC90FDAA2,0x2168C235,0x00000000
6095 NPIBY2: long 0xBFFF0000,0xC90FDAA2,0x2168C235,0x00000000
6097 PTINY: long 0x00010000,0x80000000,0x00000000,0x00000000
6098 NTINY: long 0x80010000,0x80000000,0x00000000,0x00000000
6101 long 0x3FFB0000,0x83D152C5,0x060B7A51,0x00000000
6102 long 0x3FFB0000,0x8BC85445,0x65498B8B,0x00000000
6103 long 0x3FFB0000,0x93BE4060,0x17626B0D,0x00000000
6104 long 0x3FFB0000,0x9BB3078D,0x35AEC202,0x00000000
6105 long 0x3FFB0000,0xA3A69A52,0x5DDCE7DE,0x00000000
6106 long 0x3FFB0000,0xAB98E943,0x62765619,0x00000000
6107 long 0x3FFB0000,0xB389E502,0xF9C59862,0x00000000
6108 long 0x3FFB0000,0xBB797E43,0x6B09E6FB,0x00000000
6109 long 0x3FFB0000,0xC367A5C7,0x39E5F446,0x00000000
6110 long 0x3FFB0000,0xCB544C61,0xCFF7D5C6,0x00000000
6111 long 0x3FFB0000,0xD33F62F8,0x2488533E,0x00000000
6112 long 0x3FFB0000,0xDB28DA81,0x62404C77,0x00000000
6113 long 0x3FFB0000,0xE310A407,0x8AD34F18,0x00000000
6114 long 0x3FFB0000,0xEAF6B0A8,0x188EE1EB,0x00000000
6115 long 0x3FFB0000,0xF2DAF194,0x9DBE79D5,0x00000000
6116 long 0x3FFB0000,0xFABD5813,0x61D47E3E,0x00000000
6117 long 0x3FFC0000,0x8346AC21,0x0959ECC4,0x00000000
6118 long 0x3FFC0000,0x8B232A08,0x304282D8,0x00000000
6119 long 0x3FFC0000,0x92FB70B8,0xD29AE2F9,0x00000000
6120 long 0x3FFC0000,0x9ACF476F,0x5CCD1CB4,0x00000000
6121 long 0x3FFC0000,0xA29E7630,0x4954F23F,0x00000000
6122 long 0x3FFC0000,0xAA68C5D0,0x8AB85230,0x00000000
6123 long 0x3FFC0000,0xB22DFFFD,0x9D539F83,0x00000000
6124 long 0x3FFC0000,0xB9EDEF45,0x3E900EA5,0x00000000
6125 long 0x3FFC0000,0xC1A85F1C,0xC75E3EA5,0x00000000
6126 long 0x3FFC0000,0xC95D1BE8,0x28138DE6,0x00000000
6127 long 0x3FFC0000,0xD10BF300,0x840D2DE4,0x00000000
6128 long 0x3FFC0000,0xD8B4B2BA,0x6BC05E7A,0x00000000
6129 long 0x3FFC0000,0xE0572A6B,0xB42335F6,0x00000000
6130 long 0x3FFC0000,0xE7F32A70,0xEA9CAA8F,0x00000000
6131 long 0x3FFC0000,0xEF888432,0x64ECEFAA,0x00000000
6132 long 0x3FFC0000,0xF7170A28,0xECC06666,0x00000000
6133 long 0x3FFD0000,0x812FD288,0x332DAD32,0x00000000
6134 long 0x3FFD0000,0x88A8D1B1,0x218E4D64,0x00000000
6135 long 0x3FFD0000,0x9012AB3F,0x23E4AEE8,0x00000000
6136 long 0x3FFD0000,0x976CC3D4,0x11E7F1B9,0x00000000
6137 long 0x3FFD0000,0x9EB68949,0x3889A227,0x00000000
6138 long 0x3FFD0000,0xA5EF72C3,0x4487361B,0x00000000
6139 long 0x3FFD0000,0xAD1700BA,0xF07A7227,0x00000000
6140 long 0x3FFD0000,0xB42CBCFA,0xFD37EFB7,0x00000000
6141 long 0x3FFD0000,0xBB303A94,0x0BA80F89,0x00000000
6142 long 0x3FFD0000,0xC22115C6,0xFCAEBBAF,0x00000000
6143 long 0x3FFD0000,0xC8FEF3E6,0x86331221,0x00000000
6144 long 0x3FFD0000,0xCFC98330,0xB4000C70,0x00000000
6145 long 0x3FFD0000,0xD6807AA1,0x102C5BF9,0x00000000
6146 long 0x3FFD0000,0xDD2399BC,0x31252AA3,0x00000000
6147 long 0x3FFD0000,0xE3B2A855,0x6B8FC517,0x00000000
6148 long 0x3FFD0000,0xEA2D764F,0x64315989,0x00000000
6149 long 0x3FFD0000,0xF3BF5BF8,0xBAD1A21D,0x00000000
6150 long 0x3FFE0000,0x801CE39E,0x0D205C9A,0x00000000
6151 long 0x3FFE0000,0x8630A2DA,0xDA1ED066,0x00000000
6152 long 0x3FFE0000,0x8C1AD445,0xF3E09B8C,0x00000000
6153 long 0x3FFE0000,0x91DB8F16,0x64F350E2,0x00000000
6154 long 0x3FFE0000,0x97731420,0x365E538C,0x00000000
6155 long 0x3FFE0000,0x9CE1C8E6,0xA0B8CDBA,0x00000000
6156 long 0x3FFE0000,0xA22832DB,0xCADAAE09,0x00000000
6157 long 0x3FFE0000,0xA746F2DD,0xB7602294,0x00000000
6158 long 0x3FFE0000,0xAC3EC0FB,0x997DD6A2,0x00000000
6159 long 0x3FFE0000,0xB110688A,0xEBDC6F6A,0x00000000
6160 long 0x3FFE0000,0xB5BCC490,0x59ECC4B0,0x00000000
6161 long 0x3FFE0000,0xBA44BC7D,0xD470782F,0x00000000
6162 long 0x3FFE0000,0xBEA94144,0xFD049AAC,0x00000000
6163 long 0x3FFE0000,0xC2EB4ABB,0x661628B6,0x00000000
6164 long 0x3FFE0000,0xC70BD54C,0xE602EE14,0x00000000
6165 long 0x3FFE0000,0xCD000549,0xADEC7159,0x00000000
6166 long 0x3FFE0000,0xD48457D2,0xD8EA4EA3,0x00000000
6167 long 0x3FFE0000,0xDB948DA7,0x12DECE3B,0x00000000
6168 long 0x3FFE0000,0xE23855F9,0x69E8096A,0x00000000
6169 long 0x3FFE0000,0xE8771129,0xC4353259,0x00000000
6170 long 0x3FFE0000,0xEE57C16E,0x0D379C0D,0x00000000
6171 long 0x3FFE0000,0xF3E10211,0xA87C3779,0x00000000
6172 long 0x3FFE0000,0xF919039D,0x758B8D41,0x00000000
6173 long 0x3FFE0000,0xFE058B8F,0x64935FB3,0x00000000
6174 long 0x3FFF0000,0x8155FB49,0x7B685D04,0x00000000
6175 long 0x3FFF0000,0x83889E35,0x49D108E1,0x00000000
6176 long 0x3FFF0000,0x859CFA76,0x511D724B,0x00000000
6177 long 0x3FFF0000,0x87952ECF,0xFF8131E7,0x00000000
6178 long 0x3FFF0000,0x89732FD1,0x9557641B,0x00000000
6179 long 0x3FFF0000,0x8B38CAD1,0x01932A35,0x00000000
6180 long 0x3FFF0000,0x8CE7A8D8,0x301EE6B5,0x00000000
6181 long 0x3FFF0000,0x8F46A39E,0x2EAE5281,0x00000000
6182 long 0x3FFF0000,0x922DA7D7,0x91888487,0x00000000
6183 long 0x3FFF0000,0x94D19FCB,0xDEDF5241,0x00000000
6184 long 0x3FFF0000,0x973AB944,0x19D2A08B,0x00000000
6185 long 0x3FFF0000,0x996FF00E,0x08E10B96,0x00000000
6186 long 0x3FFF0000,0x9B773F95,0x12321DA7,0x00000000
6187 long 0x3FFF0000,0x9D55CC32,0x0F935624,0x00000000
6188 long 0x3FFF0000,0x9F100575,0x006CC571,0x00000000
6189 long 0x3FFF0000,0xA0A9C290,0xD97CC06C,0x00000000
6190 long 0x3FFF0000,0xA22659EB,0xEBC0630A,0x00000000
6191 long 0x3FFF0000,0xA388B4AF,0xF6EF0EC9,0x00000000
6192 long 0x3FFF0000,0xA4D35F10,0x61D292C4,0x00000000
6193 long 0x3FFF0000,0xA60895DC,0xFBE3187E,0x00000000
6194 long 0x3FFF0000,0xA72A51DC,0x7367BEAC,0x00000000
6195 long 0x3FFF0000,0xA83A5153,0x0956168F,0x00000000
6196 long 0x3FFF0000,0xA93A2007,0x7539546E,0x00000000
6197 long 0x3FFF0000,0xAA9E7245,0x023B2605,0x00000000
6198 long 0x3FFF0000,0xAC4C84BA,0x6FE4D58F,0x00000000
6199 long 0x3FFF0000,0xADCE4A4A,0x606B9712,0x00000000
6200 long 0x3FFF0000,0xAF2A2DCD,0x8D263C9C,0x00000000
6201 long 0x3FFF0000,0xB0656F81,0xF22265C7,0x00000000
6202 long 0x3FFF0000,0xB1846515,0x0F71496A,0x00000000
6203 long 0x3FFF0000,0xB28AAA15,0x6F9ADA35,0x00000000
6204 long 0x3FFF0000,0xB37B44FF,0x3766B895,0x00000000
6205 long 0x3FFF0000,0xB458C3DC,0xE9630433,0x00000000
6206 long 0x3FFF0000,0xB525529D,0x562246BD,0x00000000
6207 long 0x3FFF0000,0xB5E2CCA9,0x5F9D88CC,0x00000000
6208 long 0x3FFF0000,0xB692CADA,0x7ACA1ADA,0x00000000
6209 long 0x3FFF0000,0xB736AEA7,0xA6925838,0x00000000
6210 long 0x3FFF0000,0xB7CFAB28,0x7E9F7B36,0x00000000
6211 long 0x3FFF0000,0xB85ECC66,0xCB219835,0x00000000
6212 long 0x3FFF0000,0xB8E4FD5A,0x20A593DA,0x00000000
6213 long 0x3FFF0000,0xB99F41F6,0x4AFF9BB5,0x00000000
6214 long 0x3FFF0000,0xBA7F1E17,0x842BBE7B,0x00000000
6215 long 0x3FFF0000,0xBB471285,0x7637E17D,0x00000000
6216 long 0x3FFF0000,0xBBFABE8A,0x4788DF6F,0x00000000
6217 long 0x3FFF0000,0xBC9D0FAD,0x2B689D79,0x00000000
6218 long 0x3FFF0000,0xBD306A39,0x471ECD86,0x00000000
6219 long 0x3FFF0000,0xBDB6C731,0x856AF18A,0x00000000
6220 long 0x3FFF0000,0xBE31CAC5,0x02E80D70,0x00000000
6221 long 0x3FFF0000,0xBEA2D55C,0xE33194E2,0x00000000
6222 long 0x3FFF0000,0xBF0B10B7,0xC03128F0,0x00000000
6223 long 0x3FFF0000,0xBF6B7A18,0xDACB778D,0x00000000
6224 long 0x3FFF0000,0xBFC4EA46,0x63FA18F6,0x00000000
6225 long 0x3FFF0000,0xC0181BDE,0x8B89A454,0x00000000
6226 long 0x3FFF0000,0xC065B066,0xCFBF6439,0x00000000
6227 long 0x3FFF0000,0xC0AE345F,0x56340AE6,0x00000000
6228 long 0x3FFF0000,0xC0F22291,0x9CB9E6A7,0x00000000
6247 and.l &0x7FFFFFFF,%d1
6249 cmp.l %d1,&0x3FFB8000 # |X| >= 1/16?
6254 cmp.l %d1,&0x4002FFFF # |X| < 16 ?
6281 and.l &0xF8000000,XFRAC(%a6) # FIRST 5 BITS
6282 or.l &0x04000000,XFRAC(%a6) # SET 6-TH BIT TO 1
6283 mov.l &0x00000000,XFRACLO(%a6) # LOCATION OF X IS NOW F
6286 fmul.x X(%a6),%fp1 # FP1 IS X*F, NOTE THAT X*F > 0
6288 fadd.s &0x3F800000,%fp1 # FP1 IS 1 + X*F
6297 and.l &0x00007800,%d1 # 4 VARYING BITS OF F'S FRACTION
6298 and.l &0x7FFF0000,%d2 # EXPONENT OF F
6299 sub.l &0x3FFB0000,%d2 # K+4
6309 and.l &0x80000000,%d1 # SIGN(F)
6324 fmovm.x &0x04,-(%sp) # save fp2
6337 fmovm.x (%sp)+,&0x20 # restore fp2
6346 cmp.l %d1,&0x3FFF8000
6356 cmp.l %d1,&0x3FD78000
6360 fmovm.x &0x0c,-(%sp) # save fp2/fp3
6389 fmovm.x (%sp)+,&0x30 # restore fp2/fp3
6407 cmp.l %d1,&0x40638000
6415 fmovm.x &0x0c,-(%sp) # save fp2/fp3
6417 fmov.s &0xBF800000,%fp1 # LOAD -1
6450 fmovm.x (%sp)+,&0x30 # restore fp2/fp3
6517 # 5. (|X| > 1) Generate an invalid operation by 0 * infinity. #
6528 and.l &0x7FFFFFFF,%d1
6529 cmp.l %d1,&0x3FFF8000
6537 cmp.l %d1,&0x3FD78000
6544 fmov.s &0x3F800000,%fp1
6546 fmovm.x &0x4,-(%sp) # {fp2}
6547 fmov.s &0x3F800000,%fp2
6550 fmovm.x (%sp)+,&0x20 # {fp2}
6553 fmovm.x &0x01,-(%sp) # save X/SQRT(...)
6556 add.l &0xc,%sp # clear X/SQRT(...) from stack
6561 fcmp.s %fp0,&0x3F800000
6568 and.l &0x80000000,%d1 # SIGN BIT OF X
6569 or.l &0x3F800000,%d1 # +-1 IN SGL FORMAT
6616 # 4. (|X| = 1) If X > 0, return 0. Otherwise, return Pi. Exit. #
6618 # 5. (|X| > 1) Generate an invalid operation by 0 * infinity. #
6629 and.l &0x7FFFFFFF,%d1
6630 cmp.l %d1,&0x3FFF8000
6637 fmov.s &0x3F800000,%fp1
6640 fadd.s &0x3F800000,%fp0 # 1-X
6645 fmovm.x &0x01,-(%sp) # save SQRT(...) to stack
6648 add.l &0xc,%sp # clear SQRT(...) from stack
6656 fcmp.s %fp0,&0x3F800000
6659 #--|X| = 1, ACOS(X) = 0 OR PI
6668 fadd.s &0x00800000,%fp0 # add a small value
6734 # 2.1 Set AdjFlag := 0 (indicates the branch 1.3 -> 2 #
6737 # 2.3 Calculate J = N mod 64; so J = 0,1,2,..., #
6813 # 6.1 If AdjFlag = 0, go to 6.3 #
6817 # Notes: If AdjFlag = 0, we have X = Mlog2 + Jlog2/64 + R, #
6848 # 8.3 Calculate J = N mod 64, J = 0,1,...,63 #
6858 # 9.1 If X < 0, go to 9.3 #
6872 # Step 1. Set ans := 0 #
6894 # 2.2 Calculate J = N mod 64; so J = 0,1,2,..., #
7002 L2: long 0x3FDC0000,0x82E30865,0x4361C4C6,0x00000000
7004 EEXPA3: long 0x3FA55555,0x55554CC1
7005 EEXPA2: long 0x3FC55555,0x55554A54
7007 EM1A4: long 0x3F811111,0x11174385
7008 EM1A3: long 0x3FA55555,0x55554F5A
7010 EM1A2: long 0x3FC55555,0x55555555,0x00000000,0x00000000
7012 EM1B8: long 0x3EC71DE3,0xA5774682
7013 EM1B7: long 0x3EFA01A0,0x19D7CB68
7015 EM1B6: long 0x3F2A01A0,0x1A019DF3
7016 EM1B5: long 0x3F56C16C,0x16C170E2
7018 EM1B4: long 0x3F811111,0x11111111
7019 EM1B3: long 0x3FA55555,0x55555555
7021 EM1B2: long 0x3FFC0000,0xAAAAAAAA,0xAAAAAAAB
7022 long 0x00000000
7024 TWO140: long 0x48B00000,0x00000000
7026 long 0x37300000,0x00000000
7029 long 0x3FFF0000,0x80000000,0x00000000,0x00000000
7030 long 0x3FFF0000,0x8164D1F3,0xBC030774,0x9F841A9B
7031 long 0x3FFF0000,0x82CD8698,0xAC2BA1D8,0x9FC1D5B9
7032 long 0x3FFF0000,0x843A28C3,0xACDE4048,0xA0728369
7033 long 0x3FFF0000,0x85AAC367,0xCC487B14,0x1FC5C95C
7034 long 0x3FFF0000,0x871F6196,0x9E8D1010,0x1EE85C9F
7035 long 0x3FFF0000,0x88980E80,0x92DA8528,0x9FA20729
7036 long 0x3FFF0000,0x8A14D575,0x496EFD9C,0xA07BF9AF
7037 long 0x3FFF0000,0x8B95C1E3,0xEA8BD6E8,0xA0020DCF
7038 long 0x3FFF0000,0x8D1ADF5B,0x7E5BA9E4,0x205A63DA
7039 long 0x3FFF0000,0x8EA4398B,0x45CD53C0,0x1EB70051
7040 long 0x3FFF0000,0x9031DC43,0x1466B1DC,0x1F6EB029
7041 long 0x3FFF0000,0x91C3D373,0xAB11C338,0xA0781494
7042 long 0x3FFF0000,0x935A2B2F,0x13E6E92C,0x9EB319B0
7043 long 0x3FFF0000,0x94F4EFA8,0xFEF70960,0x2017457D
7044 long 0x3FFF0000,0x96942D37,0x20185A00,0x1F11D537
7045 long 0x3FFF0000,0x9837F051,0x8DB8A970,0x9FB952DD
7046 long 0x3FFF0000,0x99E04593,0x20B7FA64,0x1FE43087
7047 long 0x3FFF0000,0x9B8D39B9,0xD54E5538,0x1FA2A818
7048 long 0x3FFF0000,0x9D3ED9A7,0x2CFFB750,0x1FDE494D
7049 long 0x3FFF0000,0x9EF53260,0x91A111AC,0x20504890
7050 long 0x3FFF0000,0xA0B0510F,0xB9714FC4,0xA073691C
7051 long 0x3FFF0000,0xA2704303,0x0C496818,0x1F9B7A05
7052 long 0x3FFF0000,0xA43515AE,0x09E680A0,0xA0797126
7053 long 0x3FFF0000,0xA5FED6A9,0xB15138EC,0xA071A140
7054 long 0x3FFF0000,0xA7CD93B4,0xE9653568,0x204F62DA
7055 long 0x3FFF0000,0xA9A15AB4,0xEA7C0EF8,0x1F283C4A
7056 long 0x3FFF0000,0xAB7A39B5,0xA93ED338,0x9F9A7FDC
7057 long 0x3FFF0000,0xAD583EEA,0x42A14AC8,0xA05B3FAC
7058 long 0x3FFF0000,0xAF3B78AD,0x690A4374,0x1FDF2610
7059 long 0x3FFF0000,0xB123F581,0xD2AC2590,0x9F705F90
7060 long 0x3FFF0000,0xB311C412,0xA9112488,0x201F678A
7061 long 0x3FFF0000,0xB504F333,0xF9DE6484,0x1F32FB13
7062 long 0x3FFF0000,0xB6FD91E3,0x28D17790,0x20038B30
7063 long 0x3FFF0000,0xB8FBAF47,0x62FB9EE8,0x200DC3CC
7064 long 0x3FFF0000,0xBAFF5AB2,0x133E45FC,0x9F8B2AE6
7065 long 0x3FFF0000,0xBD08A39F,0x580C36C0,0xA02BBF70
7066 long 0x3FFF0000,0xBF1799B6,0x7A731084,0xA00BF518
7067 long 0x3FFF0000,0xC12C4CCA,0x66709458,0xA041DD41
7068 long 0x3FFF0000,0xC346CCDA,0x24976408,0x9FDF137B
7069 long 0x3FFF0000,0xC5672A11,0x5506DADC,0x201F1568
7070 long 0x3FFF0000,0xC78D74C8,0xABB9B15C,0x1FC13A2E
7071 long 0x3FFF0000,0xC9B9BD86,0x6E2F27A4,0xA03F8F03
7072 long 0x3FFF0000,0xCBEC14FE,0xF2727C5C,0x1FF4907D
7073 long 0x3FFF0000,0xCE248C15,0x1F8480E4,0x9E6E53E4
7074 long 0x3FFF0000,0xD06333DA,0xEF2B2594,0x1FD6D45C
7075 long 0x3FFF0000,0xD2A81D91,0xF12AE45C,0xA076EDB9
7076 long 0x3FFF0000,0xD4F35AAB,0xCFEDFA20,0x9FA6DE21
7077 long 0x3FFF0000,0xD744FCCA,0xD69D6AF4,0x1EE69A2F
7078 long 0x3FFF0000,0xD99D15C2,0x78AFD7B4,0x207F439F
7079 long 0x3FFF0000,0xDBFBB797,0xDAF23754,0x201EC207
7080 long 0x3FFF0000,0xDE60F482,0x5E0E9124,0x9E8BE175
7081 long 0x3FFF0000,0xE0CCDEEC,0x2A94E110,0x20032C4B
7082 long 0x3FFF0000,0xE33F8972,0xBE8A5A50,0x2004DFF5
7083 long 0x3FFF0000,0xE5B906E7,0x7C8348A8,0x1E72F47A
7084 long 0x3FFF0000,0xE8396A50,0x3C4BDC68,0x1F722F22
7085 long 0x3FFF0000,0xEAC0C6E7,0xDD243930,0xA017E945
7086 long 0x3FFF0000,0xED4F301E,0xD9942B84,0x1F401A5B
7087 long 0x3FFF0000,0xEFE4B99B,0xDCDAF5CC,0x9FB9A9E3
7088 long 0x3FFF0000,0xF281773C,0x59FFB138,0x20744C05
7089 long 0x3FFF0000,0xF5257D15,0x2486CC2C,0x1F773A19
7090 long 0x3FFF0000,0xF7D0DF73,0x0AD13BB8,0x1FFE90D5
7091 long 0x3FFF0000,0xFA83B2DB,0x722A033C,0xA041ED22
7092 long 0x3FFF0000,0xFD3E0C0C,0xF486C174,0x1F853F3A
7106 and.l &0x7FFF0000,%d1 # biased expo. of X
7107 cmp.l %d1,&0x3FBE0000 # 2^(-65)
7114 cmp.l %d1,&0x400CB167 # 16380 log2 trunc. 16 bits
7124 fmul.s &0x42B8AA3B,%fp0 # 64/log2 * X
7125 fmovm.x &0xc,-(%sp) # save fp2 {%fp2/%fp3}
7126 mov.l &0,ADJFLAG(%a6)
7132 and.l &0x3F,%d1 # D0 is J = N mod 64
7137 add.w &0x3FFF,%d1 # biased expo. of 2^(M)
7145 fmul.s &0xBC317218,%fp0 # N * L1, L1 = lead(-log2/64)
7159 fmov.s &0x3AB60B70,%fp2 # fp2 IS A5
7163 fmul.s &0x3C088895,%fp3 # fp3 IS S*A4
7170 mov.l &0x80000000,SCALE+4(%a6)
7175 fadd.s &0x3F000000,%fp2 # fp2 IS A1+S*(A3+S*A5)
7189 fmovm.x (%sp)+,&0x30 # fp2 restored {%fp2/%fp3}
7208 fmovm.x (%a0),&0x80 # load X
7210 fadd.s &0x3F800000,%fp0 # 1+X in user mode
7215 cmp.l %d1,&0x400CB27C # 16480 log2
7221 fmul.s &0x42B8AA3B,%fp0 # 64/log2 * X
7222 fmovm.x &0xc,-(%sp) # save fp2 {%fp2/%fp3}
7228 and.l &0x3F,%d1 # D0 is J = N mod 64
7236 add.w &0x3FFF,%d1 # biased expo. of 2^(M1)
7238 mov.l &0x80000000,ADJSCALE+4(%a6)
7241 add.w &0x3FFF,%d1 # biased expo. of 2^(M)
7254 andi.l &0x80000000,(%sp)
7255 ori.l &0x00800000,(%sp) # sign(X)*2^(-126)
7257 fmov.s &0x3F800000,%fp0
7270 and.l &0x7FFF0000,%d1 # biased expo. of X
7271 cmp.l %d1,&0x3FFD0000 # 1/4
7279 cmp.l %d1,&0x4004C215 # 70log2 rounded up to 16 bits
7289 fmul.s &0x42B8AA3B,%fp0 # 64/log2 * X
7290 fmovm.x &0xc,-(%sp) # save fp2 {%fp2/%fp3}
7296 and.l &0x3F,%d1 # D0 is J = N mod 64
7307 fmul.s &0xBC317218,%fp0 # N * L1, L1 = lead(-log2/64)
7311 add.w &0x3FFF,%d1 # D0 is biased expo. of 2^M
7322 fmov.s &0x3950097B,%fp2 # fp2 IS a6
7326 fmul.s &0x3AB60B6A,%fp3 # fp3 IS S*A5
7331 mov.l &0x80000000,SC+4(%a6)
7338 add.w &0x3FFF,%d1 # biased expo. of 2^(-M)
7340 fadd.s &0x3F000000,%fp3 # fp3 IS A1+S*(A3+S*A5)
7343 or.w &0x8000,%d1 # signed/expo. of -2^(-M)
7345 mov.l &0x80000000,ONEBYSC+4(%a6)
7354 fmovm.x (%sp)+,&0x30 # fp2 restored {%fp2/%fp3}
7397 cmp.l %d1,&0x3FBE0000 # 2^(-65)
7402 cmp.l %d1,&0x00330000 # 2^(-16312)
7405 mov.l &0x80010000,SC(%a6) # SC is -2^(-16382)
7406 mov.l &0x80000000,SC+4(%a6)
7418 mov.l &0x80010000,SC(%a6)
7419 mov.l &0x80000000,SC+4(%a6)
7431 fmovm.x &0xc,-(%sp) # save fp2 {%fp2/%fp3}
7432 fmov.s &0x2F30CAA8,%fp1 # fp1 is B12
7434 fmov.s &0x310F8290,%fp2 # fp2 is B11
7435 fadd.s &0x32D73220,%fp1 # fp1 is B10+S*B12
7440 fadd.s &0x3493F281,%fp2 # fp2 is B9+S*...
7467 fmul.s &0x3F000000,%fp0 # fp0 is S*B1
7470 fmovm.x (%sp)+,&0x30 # fp2 restored {%fp2/%fp3}
7481 cmp.l %d1,&0
7484 fmov.s &0xBF800000,%fp0 # fp0 is -1
7486 fadd.s &0x00800000,%fp0 # -1 + 2^(-126)
7492 #--Step 0.
7518 bclr &0xf,%d0 # clear the sign bit
7519 subi.w &0x3fff,%d0 # subtract off the bias
7532 subi.w &0x3fff,%d0 # subtract off the bias
7540 ori.w &0x7fff,%d0 # clear old exp
7541 bclr &0xe,%d0 # make it the new exp +-3fff
7611 long 0x7FFB0000,0x80000000,0x00000000,0x00000000
7619 and.l &0x7FFFFFFF,%d1
7620 cmp.l %d1,&0x400CB167
7630 fmovm.x &0x01,-(%sp) # save |X| to stack
7633 add.l &0xc,%sp # erase |X| from stack
7634 fmul.s &0x3F000000,%fp0 # (1/2)EXP(|X|)
7637 fmov.s &0x3E800000,%fp1 # (1/4)
7646 cmp.l %d1,&0x400CB2B3
7655 fmovm.x &0x01,-(%sp) # save fp0 to stack
7658 add.l &0xc,%sp # clear fp0 from stack
7672 fmov.s &0x3F800000,%fp0
7675 fadd.s &0x00800000,%fp0
7732 and.l &0x7FFFFFFF,%d1
7733 cmp.l %d1,&0x400CB167
7741 movm.l &0x8040,-(%sp) # {a1/d0}
7742 fmovm.x &0x01,-(%sp) # save Y on stack
7746 add.l &0xc,%sp # clear Y from stack
7747 fmov.l &0,%fpcr
7748 movm.l (%sp)+,&0x0201 # {a1/d0}
7751 fadd.s &0x3F800000,%fp1 # 1+Z
7755 and.l &0x80000000,%d1
7756 or.l &0x3F000000,%d1
7766 cmp.l %d1,&0x400CB2B3
7770 mov.l &0,-(%sp)
7771 mov.l &0x80000000,-(%sp)
7773 and.l &0x80000000,%d1
7774 or.l &0x7FFB0000,%d1
7780 fmovm.x &0x01,-(%sp) # save fp0 on stack
7783 add.l &0xc,%sp # clear fp0 from stack
7858 and.l &0x7FFFFFFF,%d1
7859 cmp.l %d1, &0x3fd78000 # is |X| < 2^(-40)?
7861 cmp.l %d1, &0x3fffddce # is |X| > (5/2)LOG2?
7869 and.l &0x7FFF0000,%d1
7870 add.l &0x00010000,%d1 # EXPONENT OF 2|X|
7872 and.l &0x80000000,SGN(%a6)
7877 fmovm.x &0x1,-(%sp) # save Y on stack
7880 add.l &0xc,%sp # clear Y from stack
7884 fadd.s &0x40000000,%fp1 # Z+2
7894 cmp.l %d1,&0x3FFF8000
7897 cmp.l %d1,&0x40048AA1
7906 and.l &0x7FFF0000,%d1
7907 add.l &0x00010000,%d1 # EXPO OF 2|X|
7909 and.l &0x80000000,SGN(%a6)
7915 fmovm.x &0x01,-(%sp) # save Y on stack
7918 add.l &0xc,%sp # clear Y from stack
7921 fadd.s &0x3F800000,%fp0 # EXP(Y)+1
7923 eor.l &0xC0000000,%d1 # -SIGN(X)*2
7928 or.l &0x3F800000,%d1 # SGN
7945 and.l &0x80000000,%d1
7946 or.l &0x3F800000,%d1
7948 and.l &0x80000000,%d1
7949 eor.l &0x80800000,%d1 # -SIGN(X)*EPS
8024 long 0x3FFE0000,0xB17217F7,0xD1CF79AC,0x00000000
8027 long 0x3F800000
8029 long 0x00000000
8031 long 0x7F800000
8033 long 0xBF800000
8036 long 0x3FC2499A,0xB5E4040B
8038 long 0xBFC555B5,0x848CB7DB
8041 long 0x3FC99999,0x987D8730
8043 long 0xBFCFFFFF,0xFF6F7E97
8046 long 0x3FD55555,0x555555A4
8048 long 0xBFE00000,0x00000008
8051 long 0x3F175496,0xADD7DAD6
8053 long 0x3F3C71C2,0xFE80C7E0
8056 long 0x3F624924,0x928BCCFF
8058 long 0x3F899999,0x999995EC
8061 long 0x3FB55555,0x55555555
8063 long 0x40000000,0x00000000
8066 long 0x3f990000,0x80000000,0x00000000,0x00000000
8069 long 0x3FFE0000,0xFE03F80F,0xE03F80FE,0x00000000
8070 long 0x3FF70000,0xFF015358,0x833C47E2,0x00000000
8071 long 0x3FFE0000,0xFA232CF2,0x52138AC0,0x00000000
8072 long 0x3FF90000,0xBDC8D83E,0xAD88D549,0x00000000
8073 long 0x3FFE0000,0xF6603D98,0x0F6603DA,0x00000000
8074 long 0x3FFA0000,0x9CF43DCF,0xF5EAFD48,0x00000000
8075 long 0x3FFE0000,0xF2B9D648,0x0F2B9D65,0x00000000
8076 long 0x3FFA0000,0xDA16EB88,0xCB8DF614,0x00000000
8077 long 0x3FFE0000,0xEF2EB71F,0xC4345238,0x00000000
8078 long 0x3FFB0000,0x8B29B775,0x1BD70743,0x00000000
8079 long 0x3FFE0000,0xEBBDB2A5,0xC1619C8C,0x00000000
8080 long 0x3FFB0000,0xA8D839F8,0x30C1FB49,0x00000000
8081 long 0x3FFE0000,0xE865AC7B,0x7603A197,0x00000000
8082 long 0x3FFB0000,0xC61A2EB1,0x8CD907AD,0x00000000
8083 long 0x3FFE0000,0xE525982A,0xF70C880E,0x00000000
8084 long 0x3FFB0000,0xE2F2A47A,0xDE3A18AF,0x00000000
8085 long 0x3FFE0000,0xE1FC780E,0x1FC780E2,0x00000000
8086 long 0x3FFB0000,0xFF64898E,0xDF55D551,0x00000000
8087 long 0x3FFE0000,0xDEE95C4C,0xA037BA57,0x00000000
8088 long 0x3FFC0000,0x8DB956A9,0x7B3D0148,0x00000000
8089 long 0x3FFE0000,0xDBEB61EE,0xD19C5958,0x00000000
8090 long 0x3FFC0000,0x9B8FE100,0xF47BA1DE,0x00000000
8091 long 0x3FFE0000,0xD901B203,0x6406C80E,0x00000000
8092 long 0x3FFC0000,0xA9372F1D,0x0DA1BD17,0x00000000
8093 long 0x3FFE0000,0xD62B80D6,0x2B80D62C,0x00000000
8094 long 0x3FFC0000,0xB6B07F38,0xCE90E46B,0x00000000
8095 long 0x3FFE0000,0xD3680D36,0x80D3680D,0x00000000
8096 long 0x3FFC0000,0xC3FD0329,0x06488481,0x00000000
8097 long 0x3FFE0000,0xD0B69FCB,0xD2580D0B,0x00000000
8098 long 0x3FFC0000,0xD11DE0FF,0x15AB18CA,0x00000000
8099 long 0x3FFE0000,0xCE168A77,0x25080CE1,0x00000000
8100 long 0x3FFC0000,0xDE1433A1,0x6C66B150,0x00000000
8101 long 0x3FFE0000,0xCB8727C0,0x65C393E0,0x00000000
8102 long 0x3FFC0000,0xEAE10B5A,0x7DDC8ADD,0x00000000
8103 long 0x3FFE0000,0xC907DA4E,0x871146AD,0x00000000
8104 long 0x3FFC0000,0xF7856E5E,0xE2C9B291,0x00000000
8105 long 0x3FFE0000,0xC6980C69,0x80C6980C,0x00000000
8106 long 0x3FFD0000,0x82012CA5,0xA68206D7,0x00000000
8107 long 0x3FFE0000,0xC4372F85,0x5D824CA6,0x00000000
8108 long 0x3FFD0000,0x882C5FCD,0x7256A8C5,0x00000000
8109 long 0x3FFE0000,0xC1E4BBD5,0x95F6E947,0x00000000
8110 long 0x3FFD0000,0x8E44C60B,0x4CCFD7DE,0x00000000
8111 long 0x3FFE0000,0xBFA02FE8,0x0BFA02FF,0x00000000
8112 long 0x3FFD0000,0x944AD09E,0xF4351AF6,0x00000000
8113 long 0x3FFE0000,0xBD691047,0x07661AA3,0x00000000
8114 long 0x3FFD0000,0x9A3EECD4,0xC3EAA6B2,0x00000000
8115 long 0x3FFE0000,0xBB3EE721,0xA54D880C,0x00000000
8116 long 0x3FFD0000,0xA0218434,0x353F1DE8,0x00000000
8117 long 0x3FFE0000,0xB92143FA,0x36F5E02E,0x00000000
8118 long 0x3FFD0000,0xA5F2FCAB,0xBBC506DA,0x00000000
8119 long 0x3FFE0000,0xB70FBB5A,0x19BE3659,0x00000000
8120 long 0x3FFD0000,0xABB3B8BA,0x2AD362A5,0x00000000
8121 long 0x3FFE0000,0xB509E68A,0x9B94821F,0x00000000
8122 long 0x3FFD0000,0xB1641795,0xCE3CA97B,0x00000000
8123 long 0x3FFE0000,0xB30F6352,0x8917C80B,0x00000000
8124 long 0x3FFD0000,0xB7047551,0x5D0F1C61,0x00000000
8125 long 0x3FFE0000,0xB11FD3B8,0x0B11FD3C,0x00000000
8126 long 0x3FFD0000,0xBC952AFE,0xEA3D13E1,0x00000000
8127 long 0x3FFE0000,0xAF3ADDC6,0x80AF3ADE,0x00000000
8128 long 0x3FFD0000,0xC2168ED0,0xF458BA4A,0x00000000
8129 long 0x3FFE0000,0xAD602B58,0x0AD602B6,0x00000000
8130 long 0x3FFD0000,0xC788F439,0xB3163BF1,0x00000000
8131 long 0x3FFE0000,0xAB8F69E2,0x8359CD11,0x00000000
8132 long 0x3FFD0000,0xCCECAC08,0xBF04565D,0x00000000
8133 long 0x3FFE0000,0xA9C84A47,0xA07F5638,0x00000000
8134 long 0x3FFD0000,0xD2420487,0x2DD85160,0x00000000
8135 long 0x3FFE0000,0xA80A80A8,0x0A80A80B,0x00000000
8136 long 0x3FFD0000,0xD7894992,0x3BC3588A,0x00000000
8137 long 0x3FFE0000,0xA655C439,0x2D7B73A8,0x00000000
8138 long 0x3FFD0000,0xDCC2C4B4,0x9887DACC,0x00000000
8139 long 0x3FFE0000,0xA4A9CF1D,0x96833751,0x00000000
8140 long 0x3FFD0000,0xE1EEBD3E,0x6D6A6B9E,0x00000000
8141 long 0x3FFE0000,0xA3065E3F,0xAE7CD0E0,0x00000000
8142 long 0x3FFD0000,0xE70D785C,0x2F9F5BDC,0x00000000
8143 long 0x3FFE0000,0xA16B312E,0xA8FC377D,0x00000000
8144 long 0x3FFD0000,0xEC1F392C,0x5179F283,0x00000000
8145 long 0x3FFE0000,0x9FD809FD,0x809FD80A,0x00000000
8146 long 0x3FFD0000,0xF12440D3,0xE36130E6,0x00000000
8147 long 0x3FFE0000,0x9E4CAD23,0xDD5F3A20,0x00000000
8148 long 0x3FFD0000,0xF61CCE92,0x346600BB,0x00000000
8149 long 0x3FFE0000,0x9CC8E160,0xC3FB19B9,0x00000000
8150 long 0x3FFD0000,0xFB091FD3,0x8145630A,0x00000000
8151 long 0x3FFE0000,0x9B4C6F9E,0xF03A3CAA,0x00000000
8152 long 0x3FFD0000,0xFFE97042,0xBFA4C2AD,0x00000000
8153 long 0x3FFE0000,0x99D722DA,0xBDE58F06,0x00000000
8154 long 0x3FFE0000,0x825EFCED,0x49369330,0x00000000
8155 long 0x3FFE0000,0x9868C809,0x868C8098,0x00000000
8156 long 0x3FFE0000,0x84C37A7A,0xB9A905C9,0x00000000
8157 long 0x3FFE0000,0x97012E02,0x5C04B809,0x00000000
8158 long 0x3FFE0000,0x87224C2E,0x8E645FB7,0x00000000
8159 long 0x3FFE0000,0x95A02568,0x095A0257,0x00000000
8160 long 0x3FFE0000,0x897B8CAC,0x9F7DE298,0x00000000
8161 long 0x3FFE0000,0x94458094,0x45809446,0x00000000
8162 long 0x3FFE0000,0x8BCF55DE,0xC4CD05FE,0x00000000
8163 long 0x3FFE0000,0x92F11384,0x0497889C,0x00000000
8164 long 0x3FFE0000,0x8E1DC0FB,0x89E125E5,0x00000000
8165 long 0x3FFE0000,0x91A2B3C4,0xD5E6F809,0x00000000
8166 long 0x3FFE0000,0x9066E68C,0x955B6C9B,0x00000000
8167 long 0x3FFE0000,0x905A3863,0x3E06C43B,0x00000000
8168 long 0x3FFE0000,0x92AADE74,0xC7BE59E0,0x00000000
8169 long 0x3FFE0000,0x8F1779D9,0xFDC3A219,0x00000000
8170 long 0x3FFE0000,0x94E9BFF6,0x15845643,0x00000000
8171 long 0x3FFE0000,0x8DDA5202,0x37694809,0x00000000
8172 long 0x3FFE0000,0x9723A1B7,0x20134203,0x00000000
8173 long 0x3FFE0000,0x8CA29C04,0x6514E023,0x00000000
8174 long 0x3FFE0000,0x995899C8,0x90EB8990,0x00000000
8175 long 0x3FFE0000,0x8B70344A,0x139BC75A,0x00000000
8176 long 0x3FFE0000,0x9B88BDAA,0x3A3DAE2F,0x00000000
8177 long 0x3FFE0000,0x8A42F870,0x5669DB46,0x00000000
8178 long 0x3FFE0000,0x9DB4224F,0xFFE1157C,0x00000000
8179 long 0x3FFE0000,0x891AC73A,0xE9819B50,0x00000000
8180 long 0x3FFE0000,0x9FDADC26,0x8B7A12DA,0x00000000
8181 long 0x3FFE0000,0x87F78087,0xF78087F8,0x00000000
8182 long 0x3FFE0000,0xA1FCFF17,0xCE733BD4,0x00000000
8183 long 0x3FFE0000,0x86D90544,0x7A34ACC6,0x00000000
8184 long 0x3FFE0000,0xA41A9E8F,0x5446FB9F,0x00000000
8185 long 0x3FFE0000,0x85BF3761,0x2CEE3C9B,0x00000000
8186 long 0x3FFE0000,0xA633CD7E,0x6771CD8B,0x00000000
8187 long 0x3FFE0000,0x84A9F9C8,0x084A9F9D,0x00000000
8188 long 0x3FFE0000,0xA8489E60,0x0B435A5E,0x00000000
8189 long 0x3FFE0000,0x83993052,0x3FBE3368,0x00000000
8190 long 0x3FFE0000,0xAA59233C,0xCCA4BD49,0x00000000
8191 long 0x3FFE0000,0x828CBFBE,0xB9A020A3,0x00000000
8192 long 0x3FFE0000,0xAC656DAE,0x6BCC4985,0x00000000
8193 long 0x3FFE0000,0x81848DA8,0xFAF0D277,0x00000000
8194 long 0x3FFE0000,0xAE6D8EE3,0x60BB2468,0x00000000
8195 long 0x3FFE0000,0x80808080,0x80808081,0x00000000
8196 long 0x3FFE0000,0xB07197A2,0x3C46C654,0x00000000
8215 mov.l &0x00000000,ADJK(%a6)
8228 cmp.l %d1,&0 # CHECK IF X IS NEGATIVE
8231 cmp.l %d1,&0x3ffef07d # IS X < 15/16?
8233 cmp.l %d1,&0x3fff8841 # IS X > 17/16?
8251 sub.l &0x3FFF,%d1 # THIS IS K
8257 mov.l &0x3FFF0000,X(%a6) # X IS NOW Y, I.E. 2^(-K)*X
8259 and.l &0xFE000000,FFRAC(%a6) # FIRST 7 BITS OF Y
8260 or.l &0x01000000,FFRAC(%a6) # GET F: ATTACH A 1 AT THE EIGHTH BIT
8262 and.l &0x7E000000,%d1
8269 mov.l &0x3fff0000,F(%a6)
8272 fmovm.x &0xc,-(%sp) # SAVE FP2-3 WHILE FP0 IS NOT READY
8311 fmovm.x (%sp)+,&0x30 # RESTORE FP2-3
8324 fcmp.b %fp0,&0x1 # is it equal to one?
8338 fmovm.x &0xc,-(%sp) # SAVE FP2-3
8366 fmovm.x (%sp)+,&0x30 # FP2-3 RESTORED
8389 movm.l &0x3f00,-(%sp) # save some registers {d2-d7}
8403 bfffo %d4{&0:&32},%d6
8413 movm.l (%sp)+,&0xfc # restore registers {d2-d7}
8419 bfffo %d4{&0:&32},%d6 # find first 1
8435 movm.l (%sp)+,&0xfc # restore registers {d2-d7}
8453 mov.l &0x00000000,ADJK(%a6)
8459 cmp.l %d1,&0
8461 cmp.l %d1,&0x3ffe8000 # IS BOUNDS [1/2,3/2]?
8463 cmp.l %d1,&0x3fffc000
8471 cmp.l %d1,&0x3ffef07d
8473 cmp.l %d1,&0x3fff8841
8490 #--CASE 2: 1+Z > 1, THEN K = 0 AND Y-F = (1-F) + Z
8495 and.l &0xFE000000,FFRAC(%a6)
8496 or.l &0x01000000,FFRAC(%a6) # F OBTAINED
8497 cmp.l %d1,&0x3FFF8000 # SEE IF 1+Z > 1
8502 mov.l &0x3fff0000,F(%a6)
8506 and.l &0x7E000000,%d1
8511 fmovm.x &0xc,-(%sp) # SAVE FP2 {%fp2/%fp3}
8520 mov.l &0x3fff0000,F(%a6)
8524 and.l &0x7E000000,%d1
8529 fmovm.x &0xc,-(%sp) # FP2 SAVED {%fp2/%fp3}
8532 fmov.s zero(%pc),%fp1 # FP1 IS K = 0
8537 cmp.l %d1,&0
8591 # atan(X) := sgn / (+0). #
8594 # 5. (|X| > 1) Generate an invalid operation by 0 * infinity. #
8603 and.l &0x7FFFFFFF,%d1
8604 cmp.l %d1,&0x3FFF8000
8614 fadd.s &0x3F800000,%fp1 # 1-Y
8617 and.l &0x80000000,%d1
8618 or.l &0x3F000000,%d1 # SIGN(X)*HALF
8623 fmovm.x &0x01,-(%sp) # save Z on stack
8626 add.l &0xc,%sp # clear Z from stack
8636 fcmp.s %fp0,&0x3F800000
8668 # Step 0. If X < 0, create a NaN and raise the invalid operation #
8682 # Step 0. If X < 0, create a NaN and raise the invalid operation #
8695 # Step 0. If X < 0, create a NaN and raise the invalid operation #
8709 # Step 0. If X < 0, create a NaN and raise the invalid operation #
8731 long 0x3FFD0000,0xDE5BD8A9,0x37287195,0x00000000
8734 long 0x3FFF0000,0xB8AA3B29,0x5C17F0BC,0x00000000
8739 fmov.b &0x1,%fp0
8774 and.l &0x7FFFFFFF,%d1
8779 and.l &0x00007FFF,%d1
8780 sub.l &0x3FFF,%d1
8837 # N = 64(M + M') + j, j = 0,1,2,...,63. #
8850 # N = 64(M + M') + j, j = 0,1,2,...,63. #
8875 # 1. Generate overflow by Huge * Huge if X > 0; otherwise, #
8884 long 0x406A934F,0x0979A371 # 64LOG10/LOG2
8886 long 0x3F734413,0x509F8000 # LOG2/64LOG10
8889 long 0xBFCD0000,0xC0219DC1,0xDA994FD2,0x00000000
8891 LOG10: long 0x40000000,0x935D8DDD,0xAAA8AC17,0x00000000
8893 LOG2: long 0x3FFE0000,0xB17217F7,0xD1CF79AC,0x00000000
8895 EXPA5: long 0x3F56C16D,0x6F7BD0B2
8896 EXPA4: long 0x3F811112,0x302C712C
8897 EXPA3: long 0x3FA55555,0x55554CC1
8898 EXPA2: long 0x3FC55555,0x55554A54
8899 EXPA1: long 0x3FE00000,0x00000000,0x00000000,0x00000000
8902 long 0x3FFF0000,0x80000000,0x00000000,0x3F738000
8903 long 0x3FFF0000,0x8164D1F3,0xBC030773,0x3FBEF7CA
8904 long 0x3FFF0000,0x82CD8698,0xAC2BA1D7,0x3FBDF8A9
8905 long 0x3FFF0000,0x843A28C3,0xACDE4046,0x3FBCD7C9
8906 long 0x3FFF0000,0x85AAC367,0xCC487B15,0xBFBDE8DA
8907 long 0x3FFF0000,0x871F6196,0x9E8D1010,0x3FBDE85C
8908 long 0x3FFF0000,0x88980E80,0x92DA8527,0x3FBEBBF1
8909 long 0x3FFF0000,0x8A14D575,0x496EFD9A,0x3FBB80CA
8910 long 0x3FFF0000,0x8B95C1E3,0xEA8BD6E7,0xBFBA8373
8911 long 0x3FFF0000,0x8D1ADF5B,0x7E5BA9E6,0xBFBE9670
8912 long 0x3FFF0000,0x8EA4398B,0x45CD53C0,0x3FBDB700
8913 long 0x3FFF0000,0x9031DC43,0x1466B1DC,0x3FBEEEB0
8914 long 0x3FFF0000,0x91C3D373,0xAB11C336,0x3FBBFD6D
8915 long 0x3FFF0000,0x935A2B2F,0x13E6E92C,0xBFBDB319
8916 long 0x3FFF0000,0x94F4EFA8,0xFEF70961,0x3FBDBA2B
8917 long 0x3FFF0000,0x96942D37,0x20185A00,0x3FBE91D5
8918 long 0x3FFF0000,0x9837F051,0x8DB8A96F,0x3FBE8D5A
8919 long 0x3FFF0000,0x99E04593,0x20B7FA65,0xBFBCDE7B
8920 long 0x3FFF0000,0x9B8D39B9,0xD54E5539,0xBFBEBAAF
8921 long 0x3FFF0000,0x9D3ED9A7,0x2CFFB751,0xBFBD86DA
8922 long 0x3FFF0000,0x9EF53260,0x91A111AE,0xBFBEBEDD
8923 long 0x3FFF0000,0xA0B0510F,0xB9714FC2,0x3FBCC96E
8924 long 0x3FFF0000,0xA2704303,0x0C496819,0xBFBEC90B
8925 long 0x3FFF0000,0xA43515AE,0x09E6809E,0x3FBBD1DB
8926 long 0x3FFF0000,0xA5FED6A9,0xB15138EA,0x3FBCE5EB
8927 long 0x3FFF0000,0xA7CD93B4,0xE965356A,0xBFBEC274
8928 long 0x3FFF0000,0xA9A15AB4,0xEA7C0EF8,0x3FBEA83C
8929 long 0x3FFF0000,0xAB7A39B5,0xA93ED337,0x3FBECB00
8930 long 0x3FFF0000,0xAD583EEA,0x42A14AC6,0x3FBE9301
8931 long 0x3FFF0000,0xAF3B78AD,0x690A4375,0xBFBD8367
8932 long 0x3FFF0000,0xB123F581,0xD2AC2590,0xBFBEF05F
8933 long 0x3FFF0000,0xB311C412,0xA9112489,0x3FBDFB3C
8934 long 0x3FFF0000,0xB504F333,0xF9DE6484,0x3FBEB2FB
8935 long 0x3FFF0000,0xB6FD91E3,0x28D17791,0x3FBAE2CB
8936 long 0x3FFF0000,0xB8FBAF47,0x62FB9EE9,0x3FBCDC3C
8937 long 0x3FFF0000,0xBAFF5AB2,0x133E45FB,0x3FBEE9AA
8938 long 0x3FFF0000,0xBD08A39F,0x580C36BF,0xBFBEAEFD
8939 long 0x3FFF0000,0xBF1799B6,0x7A731083,0xBFBCBF51
8940 long 0x3FFF0000,0xC12C4CCA,0x66709456,0x3FBEF88A
8941 long 0x3FFF0000,0xC346CCDA,0x24976407,0x3FBD83B2
8942 long 0x3FFF0000,0xC5672A11,0x5506DADD,0x3FBDF8AB
8943 long 0x3FFF0000,0xC78D74C8,0xABB9B15D,0xBFBDFB17
8944 long 0x3FFF0000,0xC9B9BD86,0x6E2F27A3,0xBFBEFE3C
8945 long 0x3FFF0000,0xCBEC14FE,0xF2727C5D,0xBFBBB6F8
8946 long 0x3FFF0000,0xCE248C15,0x1F8480E4,0xBFBCEE53
8947 long 0x3FFF0000,0xD06333DA,0xEF2B2595,0xBFBDA4AE
8948 long 0x3FFF0000,0xD2A81D91,0xF12AE45A,0x3FBC9124
8949 long 0x3FFF0000,0xD4F35AAB,0xCFEDFA1F,0x3FBEB243
8950 long 0x3FFF0000,0xD744FCCA,0xD69D6AF4,0x3FBDE69A
8951 long 0x3FFF0000,0xD99D15C2,0x78AFD7B6,0xBFB8BC61
8952 long 0x3FFF0000,0xDBFBB797,0xDAF23755,0x3FBDF610
8953 long 0x3FFF0000,0xDE60F482,0x5E0E9124,0xBFBD8BE1
8954 long 0x3FFF0000,0xE0CCDEEC,0x2A94E111,0x3FBACB12
8955 long 0x3FFF0000,0xE33F8972,0xBE8A5A51,0x3FBB9BFE
8956 long 0x3FFF0000,0xE5B906E7,0x7C8348A8,0x3FBCF2F4
8957 long 0x3FFF0000,0xE8396A50,0x3C4BDC68,0x3FBEF22F
8958 long 0x3FFF0000,0xEAC0C6E7,0xDD24392F,0xBFBDBF4A
8959 long 0x3FFF0000,0xED4F301E,0xD9942B84,0x3FBEC01A
8960 long 0x3FFF0000,0xEFE4B99B,0xDCDAF5CB,0x3FBE8CAC
8961 long 0x3FFF0000,0xF281773C,0x59FFB13A,0xBFBCBB3F
8962 long 0x3FFF0000,0xF5257D15,0x2486CC2C,0x3FBEF73A
8963 long 0x3FFF0000,0xF7D0DF73,0x0AD13BB9,0xBFB8B795
8964 long 0x3FFF0000,0xFA83B2DB,0x722A033A,0x3FBEF84B
8965 long 0x3FFF0000,0xFD3E0C0C,0xF486C175,0xBFBEF581
8986 fmovm.x (%a0),&0x80 # LOAD INPUT
8991 and.l &0x7FFFFFFF,%d1
8993 cmp.l %d1,&0x3FB98000 # |X| >= 2**(-70)?
8998 cmp.l %d1,&0x400D80C0 # |X| > 16480?
9006 fmul.s &0x42800000,%fp1 # 64 * X
9013 and.l &0x3F,%d1 # D0 IS J
9020 add.l &0x3FFF,%d2
9027 fmovm.x &0x0c,-(%sp) # save fp2/fp3
9029 fmul.s &0x3C800000,%fp1 # (1/64)*N
9048 cmp.l %d1,&0x3FFF8000
9054 fadd.s &0x3F800000,%fp0 # RETURN 1 + X
9058 #--|X| IS LARGE, GENERATE OVERFLOW IF X > 0; ELSE GENERATE UNDERFLOW
9061 cmp.l %d1,&0
9074 fmov.s &0x3F800000,%fp0 # RETURN 1 + X
9076 or.l &0x00800001,%d1
9083 fmovm.x (%a0),&0x80 # LOAD INPUT
9088 and.l &0x7FFFFFFF,%d1
9090 cmp.l %d1,&0x3FB98000 # |X| >= 2**(-70)?
9095 cmp.l %d1,&0x400B9B07 # |X| <= 16480*log2/log10 ?
9110 and.l &0x3F,%d1 # D0 IS J
9117 add.l &0x3FFF,%d2
9123 fmovm.x &0x0c,-(%sp) # save fp2/fp3
9175 fmovm.x (%sp)+,&0x30 # restore fp2/fp3
9178 #--EXP(X) = 2^M*2^(J/64) + 2^M*2^(J/64)*(EXP(R)-1) - (1 OR 0)
9187 mov.l &0x80000000,ADJFACT+4(%a6)
9198 fmov.s &0x3F800000,%fp0 # RETURN 1 + X
9200 or.l &0x00800001,%d1
9226 andi.l &0x00007fff,%d1 # strip sign from dst exp
9229 andi.w &0x7fff,%d0 # clr src sign bit
9230 cmpi.w %d0,&0x3fff # is src ~ ZERO?
9232 cmpi.w %d0,&0x400c # no; is src too big?
9243 fmov.l &0x0,%fpsr
9262 fmovm.x FP_SCR0(%a6),&0x80 # load normalized DENORM
9264 cmpi.w %d0,&-0x3fff # is the shft amt really low?
9274 mov.l &0x80000000,%d1 # load normalized mantissa
9275 subi.l &-0x3fff,%d0 # how many should we shift?
9277 cmpi.b %d0,&0x20 # is it > 32?
9285 subi.b &0x20,%d0 # get shift count
9295 fmovm.x DST(%a1),&0x80 # load fp0 with normalized src
9299 addi.w &0x3fff,%d0 # turn src amt into exp value
9302 mov.l &0x80000000,-(%sp) # insert new high mantissa
9362 # Step 2. Set L := expo(X)-expo(Y), k := 0, Q := 0. #
9363 # If (L < 0) then #
9372 # 3.3 If j = 0, go to Step 4. #
9396 # R := 0. Return signQ, last 7 bits of Q, and R. #
9416 long 0x00010000,0x80000000,0x00000000,0x00000000
9429 mov.b &0x1,Mod_Flag(%a6)
9433 movm.l &0x3f00,-(%sp) # save data registers
9436 and.l &0x00007FFF,%d3 # Y := |Y|
9445 mov.l &0x00003FFE,%d3 # $3FFD + 1
9454 bfffo %d4{&0:&32},%d6
9462 bfffo %d4{&0:&32},%d6
9475 add.l &0x00003FFE,%d3 # (D3,D4,D5) normalized
9483 and.l &0x00008000,%d1
9485 and.l &0x00007FFF,%d0
9490 mov.l &0x00003FFE,%d0
9499 bfffo %d1{&0:&32},%d6
9507 bfffo %d1{&0:&32},%d6
9520 add.l &0x00003FFE,%d0 # (D0,D1,D2) normalized
9529 clr.l %d6 # D6 := carry <- 0
9531 mov.l &0,%a1 # A1 is k; j+k=L, Q=0
9543 addq.l &0x4,%sp # erase exp(X)
9544 #..At this point R = 2^(-L)X; Q = 0; k = 0; and k+j = L
9549 #..At this point carry = 0, R = (D1,D2), Y = (D4,D5)
9563 #..If Carry is set, then Y < (Carry,D1,D2) < 2Y. Otherwise, Carry = 0
9571 #..At this point, Carry=0, R < Y. R = 2^(k-L)X - QY; k+j = L; j >= 0.
9572 tst.l %d0 # see if j = 0.
9581 #..At this point, R=(Carry,D1,D2) = 2^(k-L)X - QY, j+k=L, j >= 0, R < 2Y.
9586 #..k = L, j = 0, Carry = 0, R = (D1,D2) = X - QY, R < Y.
9598 bfffo %d1{&0:&32},%d6
9606 bfffo %d1{&0:&32},%d6
9619 cmp.l %d0,&0x000041FE
9635 sub.l &0x3FFE,%d0
9638 sub.l &0x3FFE,%d6
9685 and.l &0x0000007F,%d3 # 7 bits of Q
9689 # and.l &0xFF00FFFF,%d6
9696 movm.l (%sp)+,&0xfc # {%d2-%d7}
9717 #..R = 2^(-j)X - Q Y = Y, thus R = 0 and quotient = 2^j (Q+1)
9729 fmov.s &0x00000000,%fp0
9736 and.l &0x00000001,%d6
9743 eor.l &0x00008000,%d6
9774 andi.w &0x7fff, %d0 # strip off sign
9775 cmpi.w %d0, &0x7fff # is (EXP == MAX)?
9778 btst &0x7,FTEMP_HI(%a0)
9784 tst.w %d0 # is exponent = 0?
9807 and.l &0x7fffffff, %d0 # msb is a don't care!
9818 qnan: long 0x7fff0000, 0xffffffff, 0xffffffff
9859 fmov.s &0xff800000,%fp0 # return -INF
9865 fmovm.x EXC_FP0(%a6),&0x80 # return fp0 unscathed
9867 fmov.s &0xbf800000,%fp1 # load -1
9868 fdiv.s &0x00000000,%fp1 # -1 / 0
9878 fmov.s &0x7f800000,%fp0 # return +INF
9884 fmovm.x EXC_FP0(%a6),&0x80 # return fp0 unscathed
9886 fmov.s &0x3f800000,%fp1 # load +1
9887 fdiv.s &0x00000000,%fp1 # +1 / 0
9923 fmovm.x qnan(%pc),&0x80 # return QNAN
9929 fmovm.x EXC_FP0(%a6),&0x80 # return fp0 unscathed
9931 fmovm.x &0x04,-(%sp) # save fp2
9932 fmov.s &0x7f800000,%fp2 # load +INF
9933 fmul.s &0x00000000,%fp2 # +INF x 0
9934 fmovm.x (%sp)+,&0x20 # restore fp2
9938 long 0x7ffe0000,0xffffffff,0xffffffff
9940 long 0xfffe0000,0xffffffff,0xffffffff
9942 long 0x00000000,0x80000000,0x00000000
9944 long 0x80000000,0x80000000,0x00000000
9981 fmovm.x mns_tiny(%pc),&0x80
9985 rol.l &0x8,%d0
9992 fmovm.x pls_tiny(%pc),&0x80
9996 rol.l &0x8,%d0
10034 andi.b &0xc0,%d1 # extract prec
10044 movm.l &0xc080,-(%sp) # save d0-d1/a0
10046 movm.l (%sp)+,&0x0103 # restore d0-d1/a0
10048 cmpi.b %d1,&0x40 # is precision sgl?
10058 andi.l &0x7ff,%d1 # dbl mantissa set?
10072 fmovm.x mns_huge(%pc),&0x80
10076 rol.l &0x8,%d0
10082 fmovm.x pls_huge(%pc),&0x80
10086 rol.l &0x8,%d0
10094 fmovm.x pls_huge(%pc),&0x80
10098 rol.l &0x8,%d0
10184 fmov.s &0x3f800000,%fp1 # load +1
10289 fmov.l &0x00000000,%fpcr # clear fpcr for load
10290 fmov.s 0x8(%sp),%fp0 # load sgl dst
10292 fadd.s 0x8(%sp),%fp0 # fadd w/ sgl src
10298 fmov.l &0x00000000,%fpcr # clear fpcr for load
10299 fmov.d 0x8(%sp),%fp0 # load dbl dst
10301 fadd.d 0xc(%sp),%fp0 # fadd w/ dbl src
10306 fmovm.x 0x4(%sp),&0x80 # load ext dst
10307 fadd.x 0x10(%sp),%fp0 # fadd w/ ext src
10313 fmov.l &0x00000000,%fpcr # clear fpcr for load
10314 fmov.s 0x8(%sp),%fp0 # load sgl dst
10316 fsub.s 0x8(%sp),%fp0 # fsub w/ sgl src
10322 fmov.l &0x00000000,%fpcr # clear fpcr for load
10323 fmov.d 0x8(%sp),%fp0 # load dbl dst
10325 fsub.d 0xc(%sp),%fp0 # fsub w/ dbl src
10330 fmovm.x 0x4(%sp),&0x80 # load ext dst
10331 fsub.x 0x10(%sp),%fp0 # fsub w/ ext src
10337 fmov.l &0x00000000,%fpcr # clear fpcr for load
10338 fmov.s 0x8(%sp),%fp0 # load sgl dst
10340 fmul.s 0x8(%sp),%fp0 # fmul w/ sgl src
10346 fmov.l &0x00000000,%fpcr # clear fpcr for load
10347 fmov.d 0x8(%sp),%fp0 # load dbl dst
10349 fmul.d 0xc(%sp),%fp0 # fmul w/ dbl src
10354 fmovm.x 0x4(%sp),&0x80 # load ext dst
10355 fmul.x 0x10(%sp),%fp0 # fmul w/ ext src
10361 fmov.l &0x00000000,%fpcr # clear fpcr for load
10362 fmov.s 0x8(%sp),%fp0 # load sgl dst
10364 fdiv.s 0x8(%sp),%fp0 # fdiv w/ sgl src
10370 fmov.l &0x00000000,%fpcr # clear fpcr for load
10371 fmov.d 0x8(%sp),%fp0 # load dbl dst
10373 fdiv.d 0xc(%sp),%fp0 # fdiv w/ dbl src
10378 fmovm.x 0x4(%sp),&0x80 # load ext dst
10379 fdiv.x 0x10(%sp),%fp0 # fdiv w/ ext src
10384 fabs.s 0x4(%sp),%fp0 # fabs w/ sgl src
10389 fabs.d 0x4(%sp),%fp0 # fabs w/ dbl src
10394 fabs.x 0x4(%sp),%fp0 # fabs w/ ext src
10399 fneg.s 0x4(%sp),%fp0 # fneg w/ sgl src
10404 fneg.d 0x4(%sp),%fp0 # fneg w/ dbl src
10409 fneg.x 0x4(%sp),%fp0 # fneg w/ ext src
10414 fsqrt.s 0x4(%sp),%fp0 # fsqrt w/ sgl src
10419 fsqrt.d 0x4(%sp),%fp0 # fsqrt w/ dbl src
10424 fsqrt.x 0x4(%sp),%fp0 # fsqrt w/ ext src
10429 fint.s 0x4(%sp),%fp0 # fint w/ sgl src
10434 fint.d 0x4(%sp),%fp0 # fint w/ dbl src
10439 fint.x 0x4(%sp),%fp0 # fint w/ ext src
10444 fintrz.s 0x4(%sp),%fp0 # fintrz w/ sgl src
10449 fintrz.d 0x4(%sp),%fp0 # fintrx w/ dbl src
10454 fintrz.x 0x4(%sp),%fp0 # fintrz w/ ext src
10472 fmov.s &0x00000000,%fp0 # load +0
10479 fmov.s &0x80000000,%fp0 # load -0
10505 fmov.s &0x7f800000,%fp0 # load +INF
10514 fmov.s &0xff800000,%fp0 # load -INF
10573 fmov.s &0x3f800000,%fp0 # load +1
10582 fmov.s &0xbf800000,%fp0 # load -1
10586 ppiby2: long 0x3fff0000, 0xc90fdaa2, 0x2168c235
10587 mpiby2: long 0xbfff0000, 0xc90fdaa2, 0x2168c235
10626 fmov.s &0x3f800000,%fp1
10629 fmov.s &0x80000000,%fp0 # return sin result in fp0
10633 fmov.s &0x00000000,%fp0 # return sin result in fp0
10701 andi.b &0x80,%d1
10714 andi.b &0x80,%d1
10843 bfffo %d0{&0:&32}, %d2 # how many places to shift?
10848 bfextu %d1{&0:%d2}, %d3 # extract lo bits
10864 bfffo %d1{&0:&32}, %d2 # how many places to shift?
10900 bfffo FTEMP_HI(%a0){&0:&32}, %d0 # how many shifts are needed?
10907 bfffo FTEMP_LO(%a0){&0:&32}, %d0 # is operand really a zero?
10918 and.w &0x7fff, %d1 # strip off sgn
10920 cmp.w %d0, %d1 # will denorm push exp < 0?
10921 bgt.b unnorm_nrm_zero # yes; denorm only until exp = 0
10924 # exponent would not go < 0. therefore, number stays normalized
10928 and.w &0x8000, %d0 # save old sign
10938 # exponent would go < 0, so only denormalize until exp = 0
10951 and.w &0x8000, FTEMP_EX(%a0) # set exp = 0
10966 clr.l FTEMP_LO(%a0) # lo(man) = 0
10968 and.w &0x8000, FTEMP_EX(%a0) # set exp = 0
10977 and.w &0x8000, FTEMP_EX(%a0) # force exponent to zero