Browse Source

2003-09-09 Dave Brolley <brolley@redhat.com>

* frv.c (do_media_average): Select machine using a switch.
ezannoni_pie-20030916-branch
Dave Brolley 23 years ago
parent
commit
f9e18f5a11
  1. 4
      sim/frv/ChangeLog
  2. 12
      sim/frv/frv.c

4
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>

12
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;

Loading…
Cancel
Save