Lines Matching +full:3 +full:d0
15 * 3. The name of the author may not be used to endorse or promote
49 * something here. %d0 and %d1 is always usable, sometimes %d2 (or
69 1: printf ,"oops:%p,%p,%p\n",3,%a2@(TASK_MM-8),%a2@(TASK_MM-4),%a2@(TASK_MM)
70 2: clr.l %d0
94 | args: %d0 = source (32-bit long)
98 printf PCONV,"l2e: %p -> %p(",2,%d0,%a0
100 tst.l %d0
104 neg.l %d0
108 move.l %d0,(%a0)+ | set mantissa
125 | args: %d0 = source (single-precision fp value)
129 printf PCONV,"s2e: %p -> %p(",2,%d0,%a0
130 move.l %d0,%d1
131 lsl.l #8,%d0 | shift mantissa
138 bset #31,%d0 | set explizit bit
141 move.l %d0,(%a0)+ | high lword of fp_ext.mant
150 tst.l %d0
156 bclr #31,%d0 | clear explizit bit
162 getuser.l %a1@(0),%d0,fp_err_ua2,%a1
164 printf PCONV,"d2e: %p%p -> %p(",3,%d0,%d1,%a0
166 getuser.l (%a1)+,%d0,fp_err_ua2,%a1
167 move.l %d0,%d1
168 lsl.l #8,%d0 | shift high mantissa
169 lsl.l #3,%d0
176 bset #31,%d0 | set explizit bit
179 move.l %d0,(%a0)+
180 getuser.l (%a1)+,%d0,fp_err_ua2,%a1
181 move.l %d0,%d1
182 lsl.l #8,%d0
183 lsl.l #3,%d0
184 move.l %d0,(%a0)
185 moveq #21,%d0
186 lsr.l %d0,%d1
195 tst.l %d0
201 bclr #31,%d0 | clear explizit bit
210 | returns 0 in %d0 for a NaN, otherwise 1
216 move.l (%a0)+,%d0
217 cmp.w #0x7fff,%d0 | Inf / NaN?
219 move.l (%a0),%d0
225 move.b (%a0),%d0
231 moveq #1,%d0
239 tst.b %d0 | test guard bit
243 lsl.b #1,%d0 | check low bits
271 move.l (4,%a0),%d0
274 clr.l %d0
275 move.b (-4,%a0),%d0
284 moveq #1,%d0
288 bfffo %d0{#0,#32},%d1
299 lsl.l %d2,%d0
300 move.l %d0,(%a0)+
301 move.l (%a0),%d0
302 move.l %d0,%d1
303 lsl.l %d2,%d0
304 move.l %d0,(%a0)
311 clr.l %d0
312 move.b (-4,%a0),%d0
317 lsl.l %d2,%d0
318 or.l %d0,(4,%a0)
321 lsl.l %d2,%d0
322 move.b %d0,(-4,%a0)
323 lsr.l #8,%d0
324 or.l %d0,(4,%a0)
329 bfffo %d0{#0,#32},%d1
343 lsl.l %d1,%d0 | lower lword needs only to be shifted
344 move.l %d0,(%a0) | into the higher lword
346 clr.l %d0
347 move.b (-4,%a0),%d0
351 bfins %d0,(%a0){%d1,#8}
355 bfins %d0,(%a0){%d1,#32} | higher and lower lword
364 bfffo %d0{#24,#8},%d1
381 lsl.l %d1,%d0
382 move.l %d0,(%a0)
385 bfins %d0,(%a0){%d1,#8}
387 2: lsl.l %d1,%d0
388 move.b %d0,(-4,%a0)
389 lsr.l #8,%d0
390 move.b %d0,(7,%a0)
393 1: move.l %d0,%d1 | lower lword is splitted between
394 lsl.l %d2,%d0 | higher and lower lword
395 move.l %d0,(%a0)
396 move.l %d1,%d0
399 lsr.l %d2,%d0
400 move.l %d0,-(%a0)
404 move.l (%a0)+,%d0
405 jne 3f
408 moveq #1,%d0
415 3: lsl.l #1,%d0
418 4: clrl %d0
441 move.l (%a0)+,%d0
442 cmp.w #0x7fff,%d0 | Inf / NaN?
444 move.l (%a0),%d0
450 move.b (%a0),%d0
463 tst.b %d0 | test guard bit
467 lsl.b #1,%d0 | check low bits
496 move.l (4,%a0),%d0
499 clr.l %d0
500 move.b (-4,%a0),%d0
512 bfffo %d0{#0,#32},%d1
524 lsl.l %d2,%d0
525 move.l %d0,(%a0)+
526 move.l (%a0),%d0
527 move.l %d0,%d1
528 lsl.l %d2,%d0
529 move.l %d0,(%a0)
536 clr.l %d0
537 move.b (-4,%a0),%d0
542 lsl.l %d2,%d0
543 or.l %d0,(4,%a0)
546 lsl.l %d2,%d0
547 move.b %d0,(-4,%a0)
548 lsr.l #8,%d0
549 or.l %d0,(4,%a0)
554 bfffo %d0{#0,#32},%d1
569 lsl.l %d1,%d0 | lower lword needs only to be shifted
570 move.l %d0,(%a0) | into the higher lword
572 clr.l %d0
573 move.b (-4,%a0),%d0
577 bfins %d0,(%a0){%d1,#8}
581 bfins %d0,(%a0){%d1,#32} | higher and lower lword
590 bfffo %d0{#24,#8},%d1
607 lsl.l %d1,%d0
608 move.l %d0,(%a0)
611 bfins %d0,(%a0){%d1,#8}
613 2: lsl.l %d1,%d0
614 move.b %d0,(-4,%a0)
615 lsr.l #8,%d0
616 move.b %d0,(7,%a0)
621 move.l (%a0)+,%d0
622 jne 3f
631 3: move.l %d0,%d1
637 4: bset #30,%d0
640 move.l %d0,(-4,%a0)
648 | 3: Round to +Infinity
673 move.l (%a0),%d0 | low lword of mantissa
677 lsl.l %d1,%d0 | keep 11 low bits.
692 tst.l %d0 | test guard bit
704 lsl.l #1,%d0 | check low bits
726 jhi 3f | %d2 > 2, round to +infinity
733 3: swap %d2 | to +inf
746 move.l (%a0),%d0
747 move.l %d0,%d1
748 lsr.l %d2,%d0
749 move.l %d0,(%a0)+
750 move.l (%a0),%d0
751 lsr.l %d2,%d0
755 or.l %d1,%d0
757 move.l %d0,(%a0)
761 bset #0,%d0 | Yes, so set the "sticky bit".
767 move.l (%a0),%d0
769 move.l %d0,%d1
770 lsr.l %d2,%d0
776 bset #0,%d0 | Sticky bit.
777 1: move.l %d0,(%a0)
780 bset #0,%d0
785 moveq #1,%d0 | Smallest possible fraction,
808 moveq #1,%d0
812 move.w #0x7ff,%d0
813 and.w (6,%a0),%d0
818 jne 3f | %d2 = 0 round to nearest
827 3: subq.w #2,%d2
830 tst.b (-3,%a0) | to -inf
833 4: tst.b (-3,%a0) | to +inf
836 moveq #-1,%d0
837 move.l %d0,(%a0)+
838 move.w #0xf800,%d0
839 move.l %d0,(%a0)
866 move.l (%a0)+,%d0 | get high lword of mantissa
873 bset #0,%d0
876 tst.b %d0 | 8 low bits.
887 subq.l #3,%a0
890 tst.b %d0 | test guard bit
892 btst #8,%d0 | test lsb bit
895 lsl.b #1,%d0 | check low bits
916 jhi 3f | %d2 > 2, round to +infinity
917 tst.b (-3,%a0) | to -inf
920 3: tst.b (-3,%a0) | to +inf
932 move.l (%a0),%d0
933 move.l %d0,%d1
934 lsr.l %d2,%d0
935 move.l %d0,(%a0)+
941 bset #0,%d0 | Sticky bit.
946 bset #0,%d0 | Sticky bit.
951 moveq #1,%d0 | Smallest possible fraction,
955 tst.b (3,%a0)
960 jne 3f | %d2 = 0 round to nearest
969 3: subq.w #2,%d2
972 tst.b (-3,%a0) | to -inf
975 4: tst.b (-3,%a0) | to +inf
1002 moveq #1,%d0
1026 move.l (%a0)+,%d0 | get high lword of mantissa
1033 bset #0,%d0
1036 tst.b %d0 | 8 low bits.
1047 subq.l #3,%a0
1050 tst.b %d0 | test guard bit
1052 btst #8,%d0 | test lsb bit
1055 lsl.b #1,%d0 | check low bits
1076 jhi 3f | %d2 > 2, round to +infinity
1077 tst.b (-3,%a0) | to -inf
1080 3: tst.b (-3,%a0) | to +inf
1085 tst.b (3,%a0)
1090 jne 3f | %d2 = 0 round to nearest
1099 3: subq.w #2,%d2
1102 tst.b (-3,%a0) | to -inf
1105 4: tst.b (-3,%a0) | to +inf
1131 | Returns the integer in %d0 (like it should)
1147 move.l (%a0),%d0
1148 move.l %d0,%d1
1155 lsr.l %d2,%d0
1158 tst.\s %d0
1160 printf PCONV,"-> %p\n",1,%d0
1162 1: neg.\s %d0
1165 1: printf PCONV,"-> %p\n",1,%d0
1174 lsr.l %d2,%d0
1179 btst %d2,%d0 | test lsb bit (%d2 still 0)
1186 addq.l #1,%d0
1191 jhi 3f | %d2 > 2, round to +infinity
1195 3: tst.w (-4,%a0) | to +inf
1211 clr.l %d0
1215 jeq 3f
1220 clr.l %d0
1223 jcs 3f | %d2 < 2, round to nearest/zero
1226 jeq 3f
1227 subq.\s #1,%d0
1228 jra 3f
1230 jne 3f
1231 addq.\s #1,%d0
1232 3: printf PCONV,"-> %p\n",1,%d0
1236 move.\s #inf,%d0
1239 addq.\s #1,%d0
1240 1: printf PCONV,"-> %p\n",1,%d0
1243 move.\s (%a0),%d0
1253 1: printf PCONV,"-> %p\n",1,%d0
1275 move.l (%a0)+,%d0
1278 move.l (%a0)+,%d0
1284 move.l %d0,%d1
1285 lsl.l #1,%d0
1286 lsr.l #4,%d0
1287 lsr.l #8,%d0
1288 or.l %d2,%d0
1289 putuser.l %d0,(%a1)+,fp_err_ua2,%a1
1290 moveq #21,%d0
1291 lsl.l %d0,%d1
1292 move.l (%a0),%d0
1293 lsr.l #4,%d0
1294 lsr.l #7,%d0
1295 or.l %d1,%d0
1296 putuser.l %d0,(%a1),fp_err_ua2,%a1
1298 getuser.l %a1@(-4),%d0,fp_err_ua2,%a1
1300 printf PCONV,"%p(%08x%08x)\n",3,%a1,%d0,%d1
1313 move.l (%a0)+,%d0
1316 move.l (%a0)+,%d0
1322 bclr #31,%d0
1323 lsr.l #8,%d0
1324 or.l %d1,%d0
1325 printf PCONV,"%08x\n",1,%d0
1358 move.w (FPD_PREC,FPDATA),%d0
1359 subq.w #1,%d0
1371 clr.l %d0
1375 bset #FPSR_CC_NEG-24,%d0 | N bit
1393 8: bset %d1,%d0
1394 9: move.b %d0,(FPD_FPSR+0,FPDATA) | set condition test result
1401 move.l (FPD_FPSR,FPDATA),%d0
1403 btst #FPSR_EXC_SNAN,%d0 | EXC_SNAN
1405 btst #FPSR_EXC_OPERR,%d0 | EXC_OPERR
1407 1: bset #FPSR_AEXC_IOP,%d0 | set IOP bit
1408 2: btst #FPSR_EXC_OVFL,%d0 | EXC_OVFL
1410 bset #FPSR_AEXC_OVFL,%d0 | set OVFL bit
1411 1: btst #FPSR_EXC_UNFL,%d0 | EXC_UNFL
1413 btst #FPSR_EXC_INEX2,%d0 | EXC_INEX2
1415 bset #FPSR_AEXC_UNFL,%d0 | set UNFL bit
1416 1: btst #FPSR_EXC_DZ,%d0 | EXC_INEX1
1418 bset #FPSR_AEXC_DZ,%d0 | set DZ bit
1419 1: btst #FPSR_EXC_OVFL,%d0 | EXC_OVFL
1421 btst #FPSR_EXC_INEX2,%d0 | EXC_INEX2
1423 btst #FPSR_EXC_INEX1,%d0 | EXC_INEX1
1425 1: bset #FPSR_AEXC_INEX,%d0 | set INEX bit
1426 2: move.l %d0,(FPD_FPSR,FPDATA)
1429 move.l %d0,%d2
1430 lsr.l #5,%d0
1431 move.l %d0,%d1
1433 or.l %d0,%d1
1435 move.l %d2,%d0
1436 lsr.l #6,%d0
1437 or.l %d1,%d0
1441 and.b %d1,%d0
1445 or.b %d1,%d0
1446 and.b #0xf8,%d0
1447 or.b %d0,%d2
1450 move.b (FPD_FPSR+2,FPDATA),%d0
1451 and.b (FPD_FPCR+2,FPDATA),%d0