From fc4e5b84c8fa9e228c17d6a545c6e50eaeb68085 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 16 Apr 1998 19:27:55 +0000 Subject: [PATCH] * Adapted R5900 COP2 interface code to clarified micro-mode interlock behavior. --- sim/mips/ChangeLog | 7 +++++++ 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 + + * 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 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 */ -- 2.7.4