aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sim/common/ChangeLog6
-rw-r--r--sim/common/cgen-trace.c14
2 files changed, 20 insertions, 0 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index c01bd90..1cbbf36 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,3 +1,9 @@
+2000-12-23 Ben Elliston <bje@redhat.com>
+
+ * cgen-trace.c (trace_result): Handle 'f' type operands; output
+ them to the trace stream using sim_fpu_printn_fpu. Include
+ "sim-fpu.h".
+
2000-12-15 Ben Elliston <bje@redhat.com>
* sim-fpu.h (sim_fpu_printn_fpu): Declare.
diff --git a/sim/common/cgen-trace.c b/sim/common/cgen-trace.c
index 93ce3e6..765ab57 100644
--- a/sim/common/cgen-trace.c
+++ b/sim/common/cgen-trace.c
@@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "dis-asm.h"
#include "bfd.h"
#include "sim-main.h"
+#include "sim-fpu.h"
#undef min
#define min(a,b) ((a) < (b) ? (a) : (b))
@@ -235,6 +236,19 @@ trace_result (SIM_CPU *cpu, char *name, int type, ...)
default :
cgen_trace_printf (cpu, "%s <- 0x%x", name, va_arg (args, int));
break;
+ case 'f':
+ {
+ DI di;
+ sim_fpu f;
+
+ /* this is separated from previous line for sunos cc */
+ di = va_arg (args, DI);
+ sim_fpu_64to (&f, di);
+
+ cgen_trace_printf (cpu, "%s <- ", name);
+ sim_fpu_printn_fpu (&f, (sim_fpu_print_func *) cgen_trace_printf, 4, cpu);
+ break;
+ }
case 'D' :
{
DI di;