aboutsummaryrefslogtreecommitdiff
path: root/sim/mips/interp.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1996-09-20 03:07:43 +0000
committerIan Lance Taylor <ian@airs.com>1996-09-20 03:07:43 +0000
commit458e1f58e6c99f16663e523eaee7cebf013afdf2 (patch)
tree2f9f319b341f81133a12e4c81deda679320107f4 /sim/mips/interp.c
parentc12f5c678e2b93fa915a30698f952aedf57865b7 (diff)
downloadgdb-458e1f58e6c99f16663e523eaee7cebf013afdf2.zip
gdb-458e1f58e6c99f16663e523eaee7cebf013afdf2.tar.gz
gdb-458e1f58e6c99f16663e523eaee7cebf013afdf2.tar.bz2
Fix multiplication, ldxc1, and floating point conversion. See ChangeLog.
Diffstat (limited to 'sim/mips/interp.c')
-rw-r--r--sim/mips/interp.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sim/mips/interp.c b/sim/mips/interp.c
index 9c47b4a..18f79ba 100644
--- a/sim/mips/interp.c
+++ b/sim/mips/interp.c
@@ -3364,6 +3364,11 @@ Convert(rm,op,from,to)
break;
}
+#if 0
+ /* FIXME: This code is incorrect. The rounding mode does not
+ round to integral values; it rounds to the nearest
+ representable value in the format. */
+
switch (rm) {
case FP_RM_NEAREST:
/* Round result to nearest representable value. When two
@@ -3398,6 +3403,8 @@ Convert(rm,op,from,to)
tmp = (float)floor((double)tmp);
break;
}
+#endif /* 0 */
+
result = (uword64)*(unsigned int *)&tmp;
}
break;
@@ -3425,6 +3432,11 @@ Convert(rm,op,from,to)
break;
}
+#if 0
+ /* FIXME: This code is incorrect. The rounding mode does not
+ round to integral values; it rounds to the nearest
+ representable value in the format. */
+
switch (rm) {
case FP_RM_NEAREST:
#ifdef HAVE_ANINT
@@ -3450,6 +3462,8 @@ Convert(rm,op,from,to)
tmp = floor(*(double *)&tmp);
break;
}
+#endif /* 0 */
+
result = *(uword64 *)&tmp;
}
break;