aboutsummaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@redhat.com>1998-04-16 19:27:55 +0000
committerFrank Ch. Eigler <fche@redhat.com>1998-04-16 19:27:55 +0000
commitfc4e5b84c8fa9e228c17d6a545c6e50eaeb68085 (patch)
tree4081fb0bcd51efc99bd1066faf293be7a8b2ce0b /sim
parent73181dfff8891b5ad0a40a39978924991d8e92fa (diff)
downloadgdb-fc4e5b84c8fa9e228c17d6a545c6e50eaeb68085.zip
gdb-fc4e5b84c8fa9e228c17d6a545c6e50eaeb68085.tar.gz
gdb-fc4e5b84c8fa9e228c17d6a545c6e50eaeb68085.tar.bz2
* Adapted R5900 COP2 interface code to clarified micro-mode interlock
behavior.
Diffstat (limited to 'sim')
-rw-r--r--sim/mips/ChangeLog7
-rw-r--r--sim/mips/interp.c13
2 files changed, 16 insertions, 4 deletions
diff --git a/sim/mips/ChangeLog b/sim/mips/ChangeLog
index 6a34a66..1802105 100644
--- a/sim/mips/ChangeLog
+++ b/sim/mips/ChangeLog
@@ -1,3 +1,10 @@
+start-sanitize-sky
+Thu Apr 16 15:24:14 1998 Frank Ch. Eigler <fche@cygnus.com>
+
+ * interp.c (decode_coproc): Adapt COP2 micro interlock to
+ clarified specs. Reset "M" bit; exit also on "E" bit.
+
+end-sanitize-sky
start-sanitize-r5900
Thu Apr 16 10:40:29 1998 Andrew Cagney <cagney@b1.cygnus.com>
diff --git a/sim/mips/interp.c b/sim/mips/interp.c
index 3e83dfc..5ed3d44 100644
--- a/sim/mips/interp.c
+++ b/sim/mips/interp.c
@@ -3316,12 +3316,17 @@ decode_coproc (SIM_DESC sd,
int rt = i_20_16;
int id = i_15_11;
- /* interlock checking */
+ /* interlock checking: wait until M or E bits set */
/* POLICY: never busy in macro mode */
- if(vu0_busy() && interlock)
+ while(vu0_busy() && interlock)
{
- while(! vu0_micro_interlock_released())
- vu0_issue(sd);
+ if(vu0_micro_interlock_released())
+ {
+ vu0_micro_interlock_clear();
+ break;
+ }
+
+ vu0_issue(sd);
}
/* perform VU register address */