mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-27 14:00:30 +00:00
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
@ -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>
|
2003-09-08 Dave Brolley <brolley@redhat.com>
|
||||||
|
|
||||||
On behalf of Doug Evans <dje@sebabeach.org>
|
On behalf of Doug Evans <dje@sebabeach.org>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* frv simulator support code
|
/* 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.
|
Contributed by Red Hat.
|
||||||
|
|
||||||
This file is part of the GNU simulators.
|
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);
|
SIM_DESC sd = CPU_STATE (current_cpu);
|
||||||
SI sum = (arg1 + arg2);
|
SI sum = (arg1 + arg2);
|
||||||
HI result = sum >> 1;
|
HI result = sum >> 1;
|
||||||
|
int rounding_value;
|
||||||
|
|
||||||
/* On fr400, check the rounding mode. On other machines rounding is always
|
/* On fr400, check the rounding mode. On other machines rounding is always
|
||||||
toward negative infinity and the result is already correctly rounded. */
|
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
|
/* Check whether rounding will be required. Rounding will be required
|
||||||
if the sum is an odd number. */
|
if the sum is an odd number. */
|
||||||
int rounding_value = sum & 1;
|
rounding_value = sum & 1;
|
||||||
if (rounding_value)
|
if (rounding_value)
|
||||||
{
|
{
|
||||||
USI msr0 = GET_MSR (0);
|
USI msr0 = GET_MSR (0);
|
||||||
@ -1098,6 +1101,9 @@ do_media_average (SIM_CPU *current_cpu, HI arg1, HI arg2)
|
|||||||
++result;
|
++result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
Loading…
Reference in New Issue
Block a user