diff options
author | Frank Ch. Eigler <fche@redhat.com> | 1998-04-16 19:27:55 +0000 |
---|---|---|
committer | Frank Ch. Eigler <fche@redhat.com> | 1998-04-16 19:27:55 +0000 |
commit | fc4e5b84c8fa9e228c17d6a545c6e50eaeb68085 (patch) | |
tree | 4081fb0bcd51efc99bd1066faf293be7a8b2ce0b /sim | |
parent | 73181dfff8891b5ad0a40a39978924991d8e92fa (diff) | |
download | gdb-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/ChangeLog | 7 | ||||
-rw-r--r-- | sim/mips/interp.c | 13 |
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 */ |