2003-09-09 Dave Brolley <brolley@redhat.com>
* frv.c (do_media_average): Select machine using a switch.
This commit is contained in:
parent
964869950a
commit
f9e18f5a11
2 changed files with 13 additions and 3 deletions
|
@ -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>
|
||||
|
|
|
@ -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…
Reference in a new issue