On Sat, Dec 01, 2001 at 12:36:44AM +0100, Kjeld Borch Egevang wrote:
> Great. The same problem exists for sp_tlong.c and dp_tlong.c.
Ok, this is what I'm going to checkin for both 2.4 and 2.5. Tell me if
that's ok.
Btw, we've got so many almost identical sourcefiles in the fp emulation
code, something should be done about that ...
Ralf
Index: arch/mips/math-emu/dp_tint.c
===================================================================
RCS file: /home/pub/cvs/linux/arch/mips/math-emu/dp_tint.c,v
retrieving revision 1.4
diff -u -r1.4 dp_tint.c
--- arch/mips/math-emu/dp_tint.c 2001/10/09 23:56:18 1.4
+++ arch/mips/math-emu/dp_tint.c 2001/12/02 13:10:44
@@ -50,6 +50,9 @@
break;
}
if (xe >= 31) {
+ /* look for valid corner case */
+ if (xe == 31 && xs && xm == DP_HIDDEN_BIT)
+ return -2147483648;
/* Set invalid. We will only use overflow for floating
point overflow */
SETCX(IEEE754_INVALID_OPERATION);
Index: arch/mips/math-emu/dp_tlong.c
===================================================================
RCS file: /home/pub/cvs/linux/arch/mips/math-emu/dp_tlong.c,v
retrieving revision 1.5
diff -u -r1.5 dp_tlong.c
--- arch/mips/math-emu/dp_tlong.c 2001/11/21 15:53:51 1.5
+++ arch/mips/math-emu/dp_tlong.c 2001/12/02 13:10:44
@@ -49,6 +49,9 @@
break;
}
if (xe >= 63) {
+ /* look for valid corner case */
+ if (xe == 63 && xs && xm == DP_HIDDEN_BIT)
+ return -9223372036854775808LL;
/* Set invalid. We will only use overflow for floating
point overflow */
SETCX(IEEE754_INVALID_OPERATION);
Index: arch/mips/math-emu/sp_tint.c
===================================================================
RCS file: /home/pub/cvs/linux/arch/mips/math-emu/sp_tint.c,v
retrieving revision 1.4
diff -u -r1.4 sp_tint.c
--- arch/mips/math-emu/sp_tint.c 2001/10/09 23:56:19 1.4
+++ arch/mips/math-emu/sp_tint.c 2001/12/02 13:10:44
@@ -50,6 +50,9 @@
break;
}
if (xe >= 31) {
+ /* look for valid corner case */
+ if (xe == 31 && xs && xm == SP_HIDDEN_BIT)
+ return -2147483648;
/* Set invalid. We will only use overflow for floating
point overflow */
SETCX(IEEE754_INVALID_OPERATION);
Index: arch/mips/math-emu/sp_tlong.c
===================================================================
RCS file: /home/pub/cvs/linux/arch/mips/math-emu/sp_tlong.c,v
retrieving revision 1.4
diff -u -r1.4 sp_tlong.c
--- arch/mips/math-emu/sp_tlong.c 2001/10/09 23:56:19 1.4
+++ arch/mips/math-emu/sp_tlong.c 2001/12/02 13:10:44
@@ -49,6 +49,9 @@
break;
}
if (xe >= 63) {
+ /* look for valid corner case */
+ if (xe == 63 && xs && xm == SP_HIDDEN_BIT)
+ return -9223372036854775808LL;
/* Set invalid. We will only use overflow for floating
point overflow */
SETCX(IEEE754_INVALID_OPERATION);
|