summaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2003-09-09 22:28:33 +0000
committerDave Brolley <brolley@redhat.com>2003-09-09 22:28:33 +0000
commit266dc99f25f62c6d060a6cbc937e8b0ccdc0f7c9 (patch)
tree53657b8b94bd438df510ff21f7c56935250420be /sim
parent97a99ce73373cdc9f70d2ab4baeb89cc80c12c0b (diff)
downloadgdb-266dc99f25f62c6d060a6cbc937e8b0ccdc0f7c9.tar.gz
2003-09-09 Dave Brolley <brolley@redhat.com>
* frv.c (do_media_average): Select machine using a switch.
Diffstat (limited to 'sim')
-rw-r--r--sim/frv/ChangeLog4
-rw-r--r--sim/frv/frv.c12
2 files changed, 13 insertions, 3 deletions
diff --git a/sim/frv/ChangeLog b/sim/frv/ChangeLog
index 91f636a068c..34d685cd47c 100644
--- a/sim/frv/ChangeLog
+++ b/sim/frv/ChangeLog
@@ -1,3 +1,7 @@
+2003-09-09 Dave Brolley <brolley@redhat.com>
+
+ * frv.c (do_media_average): Select machine using a switch.
+
2003-09-08 Dave Brolley <brolley@redhat.com>
On behalf of Doug Evans <dje@sebabeach.org>
diff --git a/sim/frv/frv.c b/sim/frv/frv.c
index a13af6b5ecd..bd3220dcacf 100644
--- a/sim/frv/frv.c
+++ b/sim/frv/frv.c
@@ -1,5 +1,5 @@
/* frv simulator support code
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU simulators.
@@ -1049,14 +1049,17 @@ do_media_average (SIM_CPU *current_cpu, HI arg1, HI arg2)
SIM_DESC sd = CPU_STATE (current_cpu);
SI sum = (arg1 + arg2);
HI result = sum >> 1;
+ int rounding_value;
/* On fr400, check the rounding mode. On other machines rounding is always
toward negative infinity and the result is already correctly rounded. */
- if (STATE_ARCHITECTURE (sd)->mach == bfd_mach_fr400)
+ switch (STATE_ARCHITECTURE (sd)->mach)
{
+ /* Need to check rounding mode. */
+ case bfd_mach_fr400:
/* Check whether rounding will be required. Rounding will be required
if the sum is an odd number. */
- int rounding_value = sum & 1;
+ rounding_value = sum & 1;
if (rounding_value)
{
USI msr0 = GET_MSR (0);
@@ -1098,6 +1101,9 @@ do_media_average (SIM_CPU *current_cpu, HI arg1, HI arg2)
++result;
}
}
+ break;
+ default:
+ break;
}
return result;