fixed bug in conversion from float/double to unsigned
authorceriel <none@none>
Mon, 26 Mar 1990 14:16:59 +0000 (14:16 +0000)
committerceriel <none@none>
Mon, 26 Mar 1990 14:16:59 +0000 (14:16 +0000)
mach/m68020/libem/fp68881.s

index e8474a0..4e2240d 100644 (file)
        bne     1f
        fmove.s (8,sp),fp0
        fabs    fp0
+       cmp.l   #0x4f000000,(8,sp)
+       bge     2f
        fintrz  fp0,fp0
        fmove.l fp0,(8,sp)
        jmp     (a0)
+2:
+       fadd.l  #-2147483648,fp0
+       fintrz  fp0,fp0
+       fmove.l fp0,d0
+       bchg    #31,d0
+       move.l  d0,(8,sp)
+       jmp     (a0)
 1:
        fmove.d (8,sp),fp0
        fabs    fp0
+       cmp.l   #0x41e00000,(8,sp)
+       bge     1f
        fintrz  fp0,fp0
        fmove.l fp0,(12,sp)
        jmp     (a0)
+1:
+       fadd.l  #-2147483648,fp0
+       fintrz  fp0,fp0
+       fmove.l fp0,d0
+       bchg    #31,d0
+       move.l  d0,(12,sp)
+       jmp     (a0)
 
 .cff4:
        move.l  (sp)+,a0