Lines Matching +full:2 +full:w
12 * 2. Redistributions in binary form must reproduce the above copyright
68 jpl 2f
70 2: clr.l %d0
98 printf PCONV,"l2e: %p -> %p(",2,%d0,%a0
106 move.w #0x3fff+31,%d1
129 printf PCONV,"s2e: %p -> %p(",2,%d0,%a0
134 lsr.w #8,%d1
136 cmp.w #0xff,%d1 | NaN / Inf?
139 add.w #0x3fff-0x7f,%d1 | re-bias the exponent.
152 move.w #0x4000-0x7f,%d1
157 move.w #0x7fff,%d1
172 lsr.w #5,%d1
174 cmp.w #0x7ff,%d1 | NaN / Inf?
177 add.w #0x3fff-0x3ff,%d1 | re-bias the exponent.
197 move.w #0x4000-0x3ff,%d1
202 move.w #0x7fff,%d1
217 cmp.w #0x7fff,%d0 | Inf / NaN?
237 move.w (FPD_RND,FPDATA),%d2
250 move.w #0x8000,(4,%a0)
251 addq.w #1,(2,%a0)
257 subq.w #2,%d2
258 jcs 9b | %d2 < 2, round to zero
259 jhi 1f | %d2 > 2, round to +infinity
279 clr.w -(%a0)
280 subq.l #2,%a0
289 move.w -(%a0),%d2
290 sub.w %d1,%d2
293 add.w %d2,%d1
294 clr.w %d2
295 1: move.w %d2,(%a0)+
296 move.w %d1,%d2
305 neg.w %d2
306 and.w #0x1f,%d2
313 neg.w %d2
314 add.w #24,%d2
320 1: addq.w #8,%d2
330 add.w #32,%d1
331 move.w -(%a0),%d2
332 sub.w %d1,%d2
335 add.w %d2,%d1
336 clr.w %d2
337 1: move.w %d2,(%a0)+
341 sub.w #32,%d2
349 neg.w %d1
350 add.w #32,%d1
354 1: neg.w %d1 | lower lword is splitted between
359 move.w %d1,%d2
365 add.w #40,%d1
366 move.w -(%a0),%d2
367 sub.w %d1,%d2
370 add.w %d2,%d1
371 clr.w %d2
372 1: move.w %d2,(%a0)+
375 cmp.w #8,%d1
376 jcs 2f
378 sub.w #64,%d1
380 add.w #24,%d1
384 1: neg.w %d1
387 2: lsl.l %d1,%d0
397 neg.w %d2
398 add.w #32,%d2
409 2: subq.l #8,%a0
419 jra 2b
442 cmp.w #0x7fff,%d0 | Inf / NaN?
461 move.w (FPD_RND,FPDATA),%d2
474 addq.w #1,(2,%a0)
475 move.w #0x8000,(4,%a0)
481 subq.w #2,%d2
482 jcs 9b | %d2 < 2, round to zero
483 jhi 1f | %d2 > 2, round to +infinity
504 clr.w -(%a0)
505 subq.l #2,%a0
513 move.w -(%a0),%d2
514 sub.w %d1,%d2
517 add.w %d2,%d1
518 clr.w %d2
520 1: move.w %d2,(%a0)+
521 move.w %d1,%d2
530 neg.w %d2
531 and.w #0x1f,%d2
538 neg.w %d2
539 add.w #24,%d2
545 1: addq.w #8,%d2
555 add.w #32,%d1
556 move.w -(%a0),%d2
557 sub.w %d1,%d2
560 add.w %d2,%d1
561 clr.w %d2
563 1: move.w %d2,(%a0)+
567 sub.w #32,%d1
575 neg.w %d1
576 add.w #32,%d1
580 1: neg.w %d1 | lower lword is splitted between
585 move.w %d1,%d2
591 add.w #40,%d1
592 move.w -(%a0),%d2
593 sub.w %d1,%d2
596 add.w %d2,%d1
597 clr.w %d2
598 1: move.w %d2,(%a0)+
601 cmp.w #8,%d1
602 jcs 2f
604 sub.w #64,%d1
606 add.w #24,%d1
610 1: neg.w %d1
613 2: lsl.l %d1,%d0
625 2: subq.l #8,%a0
638 jne 2b
641 jra 2b
647 | 2: Round to -Infinity
664 tst.w %d2
666 cmp.w #0x7fff,%d2
668 sub.w #0x4000-0x3ff,%d2 | will the exponent fit?
670 cmp.w #0x7fe,%d2
689 and.w #0xf800,(2,%a0) | clear bits 0-10
690 move.w (FPD_RND,FPDATA),%d2 | rounding mode
691 jne 2f | %d2 == 0, round to nearest
695 clr.w %d2 | first set z bit, addx only clears it
696 addx.w %d2,%d2 | test lsb bit
715 move.w #0x8000,(%a0)
716 addq.w #1,-(%a0)
717 cmp.w #0x43ff,(%a0)+ | exponent now overflown?
724 2: subq.w #2,%d2
725 jcs 9b | %d2 < 2, round to zero
726 jhi 3f | %d2 > 2, round to +infinity
741 move.w #0x3c01,(-2,%a0) | 2**-1022
742 neg.w %d2 | degree of underflow
743 cmp.w #32,%d2 | single or double shift?
752 neg.w %d2
753 add.w #32,%d2
764 1: sub.w #32,%d2
765 cmp.w #32,%d2 | Do we really need to shift?
766 jcc 2f | No, the number is too small.
771 neg.w %d2
772 add.w #32,%d2
783 2: clr.l (%a0)+
799 | i.e. pathologically small (exponent is 2**-16383) numbers.
806 move.w #0x3c01,-(%a0) | i.e. 2**-1022
812 move.w #0x7ff,%d0
813 and.w (6,%a0),%d0
817 move.w (FPD_RND,FPDATA),%d2
819 1: move.w #0x7fff,(-2,%a0)
822 2: subq.l #8,%a0
827 3: subq.w #2,%d2
828 jcs 5f | %d2 < 2, round to zero
829 jhi 4f | %d2 > 2, round to +infinity
835 5: move.w #0x43fe,(-2,%a0)
838 move.w #0xf800,%d0
840 jra 2b
857 addq.l #2,%a0
858 move.w (%a0)+,%d2
860 cmp.w #0x7fff,%d2
862 sub.w #0x4000-0x7f,%d2 | will the exponent fit?
864 cmp.w #0xfe,%d2
888 move.w (FPD_RND,FPDATA),%d2 | rounding mode
889 jne 2f | %d2 == 0, round to nearest
904 move.w #0x8000,(%a0)
905 addq.w #1,-(%a0)
906 cmp.w #0x407f,(%a0)+ | exponent now overflown?
914 2: subq.w #2,%d2
915 jcs 9b | %d2 < 2, round to zero
916 jhi 3f | %d2 > 2, round to +infinity
927 move.w #0x3f81,(-2,%a0) | 2**-126
928 neg.w %d2 | degree of underflow
929 cmp.w #32,%d2 | single or double shift?
930 jcc 2f
937 neg.w %d2
938 add.w #32,%d2
949 2: clr.l (%a0)+
959 move.w (FPD_RND,FPDATA),%d2
961 1: move.w #0x7fff,(-2,%a0)
964 2: subq.l #8,%a0
969 3: subq.w #2,%d2
970 jcs 5f | %d2 < 2, round to zero
971 jhi 4f | %d2 > 2, round to +infinity
977 5: move.w #0x407e,(-2,%a0)
980 jra 2b
993 | i.e. pathologically small (exponent is 2**-16383) numbers.
1000 move.w #0x3f81,-(%a0) | i.e. 2**-126
1022 addq.l #2,%a0
1023 move.w (%a0)+,%d2
1024 cmp.w #0x7fff,%d2
1048 move.w (FPD_RND,FPDATA),%d2 | rounding mode
1049 jne 2f | %d2 == 0, round to nearest
1064 move.w #0x8000,(%a0)
1065 addq.w #1,-(%a0)
1066 cmp.w #0x407f,(%a0)+ | exponent now overflown?
1074 2: subq.w #2,%d2
1075 jcs 9b | %d2 < 2, round to zero
1076 jhi 3f | %d2 > 2, round to +infinity
1089 move.w (FPD_RND,FPDATA),%d2
1091 1: move.w #0x7fff,(-2,%a0)
1094 2: subq.l #8,%a0
1099 3: subq.w #2,%d2
1100 jcs 5f | %d2 < 2, round to zero
1101 jhi 4f | %d2 > 2, round to +infinity
1107 5: move.w #0x407e,(-2,%a0)
1110 jra 2b
1135 printf PCONV,"e2i%d: %p(",2,#\b,%a0
1138 addq.l #2,%a0
1139 move.w (%a0)+,%d2 | exponent
1141 cmp.w #0x7fff,%d2
1143 sub.w #0x3ffe,%d2
1145 cmp.w #\b,%d2
1153 neg.w %d2
1154 add.w #32,%d2
1156 9: tst.w (-4,%a0)
1169 neg.w %d2
1170 add.w #32,%d2
1175 move.w (FPD_RND,FPDATA),%d2 | rounding mode
1176 jne 2f | %d2 == 0, round to nearest
1189 2: subq.w #2,%d2
1190 jcs 9b | %d2 < 2, round to zero
1191 jhi 3f | %d2 > 2, round to +infinity
1192 tst.w (-4,%a0) | to -inf
1195 3: tst.w (-4,%a0) | to +inf
1198 | we are only want -2**127 get correctly rounded here,
1202 5: move.w (FPD_RND,FPDATA),%d2 | rounding mode
1203 jne 2b | %d2 == 0, round to nearest
1221 move.w (FPD_RND,FPDATA),%d2 | rounding mode
1222 subq.w #2,%d2
1223 jcs 3f | %d2 < 2, round to nearest/zero
1224 jhi 2f | %d2 > 2, round to +infinity
1225 tst.w (-4,%a0) | to -inf
1229 2: tst.w (-4,%a0) | to +inf
1237 tst.w (-4,%a0)
1261 conv_ext2int w,16
1272 cmp.w #0x7fff,%d2
1274 move.w #0x7ff,%d2
1276 jra 2f
1277 1: sub.w #0x3fff-0x3ff,%d2
1279 jmi 2f
1280 clr.w %d2
1281 2: lsl.w #5,%d2
1310 cmp.w #0x7fff,%d1
1312 move.w #0xff,%d1
1314 jra 2f
1315 1: sub.w #0x3fff-0x7f,%d1
1317 jmi 2f
1318 clr.w %d1
1319 2: lsl.w #8,%d1
1358 move.w (FPD_PREC,FPDATA),%d0
1359 subq.w #1,%d0
1363 jra 2f
1365 2:| printf ,"f: %p\n",1,%a0
1376 1: cmp.w #0x7fff,(%a0)+ | exponent
1377 jeq 2f
1386 2: moveq #FPSR_CC_NAN-24,%d1
1406 jeq 2f
1408 2: btst #FPSR_EXC_OVFL,%d0 | EXC_OVFL
1424 jeq 2f
1426 2: move.l %d0,(FPD_FPSR,FPDATA)
1450 move.b (FPD_FPSR+2,FPDATA),%d0
1451 and.b (FPD_FPCR+2,FPDATA),%d0