aboutsummaryrefslogtreecommitdiff
path: root/sim/frv/mloop.in
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2003-10-08 18:19:33 +0000
committerDave Brolley <brolley@redhat.com>2003-10-08 18:19:33 +0000
commite930b1f54ff2768c5818eb0a450b1d98d46d273d (patch)
treebeff79b0fd16e78faffe78489d34d064d5618b43 /sim/frv/mloop.in
parent7c3f9ad027b9ec2906f3367ca7be18e5fb8f6893 (diff)
downloadgdb-e930b1f54ff2768c5818eb0a450b1d98d46d273d.zip
gdb-e930b1f54ff2768c5818eb0a450b1d98d46d273d.tar.gz
gdb-e930b1f54ff2768c5818eb0a450b1d98d46d273d.tar.bz2
2003-10-06 Dave Brolley <brolley@redhat.com>
* profile-fr550.[ch]: New files. * configure.in: Move frv handling to alphabetically correct placement. * Makefile.in: Add fr550 support. * frv-sim.h,frv.c,interrups.c,memory.c,mloop.in,pipeline.c, profile.[ch],registers.c,traps.c: Add fr550 support. * arch.c,arch.h,cpu.c,cpu.h,cpuall.h,model.h,decode.c,decode.h,sem.c: Regenerate.
Diffstat (limited to 'sim/frv/mloop.in')
-rw-r--r--sim/frv/mloop.in8
1 files changed, 7 insertions, 1 deletions
diff --git a/sim/frv/mloop.in b/sim/frv/mloop.in
index 2d1726d..073d81d 100644
--- a/sim/frv/mloop.in
+++ b/sim/frv/mloop.in
@@ -1,5 +1,5 @@
# Simulator main loop for frv. -*- C -*-
-# 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.
@@ -395,6 +395,7 @@ static void
break;
case bfd_mach_frvtomcat:
case bfd_mach_fr500:
+ case bfd_mach_fr550:
case bfd_mach_frv:
simulate_dual_insn_prefetch (current_cpu, vpc, 16);
break;
@@ -454,6 +455,7 @@ cat <<EOF
int first_insn_p = 1;
int last_insn_p = 0;
int ninsns;
+ CGEN_ATTR_VALUE_TYPE slot;
/* If the timer is enabled, then enable model profiling. This is because
the timer needs accurate cycles counts to work properly. */
@@ -465,6 +467,7 @@ cat <<EOF
vliw = CPU_VLIW (current_cpu);
frv_vliw_reset (vliw, STATE_ARCHITECTURE (CPU_STATE (current_cpu))->mach,
CPU_ELF_FLAGS (current_cpu));
+ frv_current_fm_slot = UNIT_NIL;
for (ninsns = 0; ! last_insn_p && ninsns < FRV_VLIW_SIZE; ++ninsns)
{
@@ -484,6 +487,9 @@ cat <<EOF
if (! error)
frv_vliw_setup_insn (current_cpu, insn);
frv_detect_insn_access_interrupts (current_cpu, sc);
+ slot = (*vliw->current_vliw)[vliw->next_slot - 1];
+ if (slot >= UNIT_FM0 && slot <= UNIT_FM3)
+ frv_current_fm_slot = slot;
vpc = execute (current_cpu, sc, FAST_P);