+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>
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 */