diff options
author | Dave Brolley <brolley@redhat.com> | 2003-10-08 18:19:33 +0000 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2003-10-08 18:19:33 +0000 |
commit | e930b1f54ff2768c5818eb0a450b1d98d46d273d (patch) | |
tree | beff79b0fd16e78faffe78489d34d064d5618b43 /sim/frv/mloop.in | |
parent | 7c3f9ad027b9ec2906f3367ca7be18e5fb8f6893 (diff) | |
download | gdb-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.in | 8 |
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); |