From: ceriel Date: Mon, 2 Mar 1992 11:52:09 +0000 (+0000) Subject: Fixed CFU implementation X-Git-Tag: release-5-5~504 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=a8b2fae0da7a630e9d7b432166f2ce7a20f09de9;p=ack.git Fixed CFU implementation --- diff --git a/mach/i386/libem/fp8087.s b/mach/i386/libem/fp8087.s index 39ee20e3e..42a20df77 100644 --- a/mach/i386/libem/fp8087.s +++ b/mach/i386/libem/fp8087.s @@ -329,7 +329,8 @@ bigmin: fstcw 4(bx) wait mov dx,4(bx) - or 4(bx),0xc00 ! truncating mode + and 4(bx),0xf3ff + or 4(bx),0x400 ! to -infinity wait fldcw 4(bx) cmp 8(bx),4 @@ -337,8 +338,12 @@ bigmin: ! loc 4 loc ? cfu flds 12(bx) fabs ! ??? + fiaddl (bigmin) fistpl 12(bx) wait + mov ax,12(bx) + sub ax,(bigmin) + mov 12(bx),ax 1: mov 4(bx),dx wait @@ -348,7 +353,12 @@ bigmin: ! loc 8 loc ? cfu fldd 12(bx) fabs ! ??? + fiaddl (bigmin) fistpl 16(bx) + wait + mov ax,16(bx) + sub ax,(bigmin) + mov 16(bx),ax jmp 1b .cff4: diff --git a/mach/i86/libem/fp8087.s b/mach/i86/libem/fp8087.s index ef433c23e..c6c71e74f 100644 --- a/mach/i86/libem/fp8087.s +++ b/mach/i86/libem/fp8087.s @@ -487,7 +487,8 @@ bigmin: fstcw -2(bx) wait mov dx,-2(bx) - or -2(bx),0xc00 ! truncating mode + and -2(bx),0xf3ff + or -2(bx),0x400 ! to -infinity wait fldcw -2(bx) wait @@ -499,8 +500,12 @@ bigmin: wait fabs ! ??? wait + fiaddl (bigmin) fistpl 6(bx) wait + mov ax,8(bx) + sub ax,(bigmin+2) + mov 8(bx),ax cmp 2(bx),2 jne 1f mov ax,6(bx) @@ -517,8 +522,12 @@ bigmin: wait fabs ! ??? wait + fiaddl (bigmin) fistpl 10(bx) wait + mov ax,12(bx) + sub ax,(bigmin+2) + mov 12(bx),ax cmp 2(bx),2 jne 1b mov ax,10(bx)