summaryrefslogtreecommitdiff
path: root/sim/frv/frv.c
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
commitf9e18f5a11abe959220c570da56b09cc0fd6fd62 (patch)
treeb70b0ca7aa0aefe7a627f94e32da9e98ae25ae69 /sim/frv/frv.c
parent964869950a2bed7d939a629f9e6cda4bc66011f0 (diff)
downloadbinutils-f9e18f5a11abe959220c570da56b09cc0fd6fd62.tar.gz
binutils-f9e18f5a11abe959220c570da56b09cc0fd6fd62.tar.bz2
binutils-f9e18f5a11abe959220c570da56b09cc0fd6fd62.zip
2003-09-09 Dave Brolley <brolley@redhat.com>
* frv.c (do_media_average): Select machine using a switch.
Diffstat (limited to 'sim/frv/frv.c')
-rw-r--r--sim/frv/frv.c12
1 files changed, 9 insertions, 3 deletions
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;