* R5900 COP2 sim testing in progress. The majority of instructions actually
work! [ChangeLog.sky] * sky-vu.h (vu_device): Represent "macro instruction just stuffed into fetch buffer" condition with new "m" bit. Rename old "m" to "l". * sky-libvpe.c (indebug): Save snapshot of environment value; workaround for suspected memory corruption. (fetch_inst): Respect new "m" macro-instruction flag for reporting successful fetch to caller. (exec_inst): Disassemble instruction here instead of fetch time. Renamed old "m" -> "l" flag in VU state to track interlock release. (vpecallms_cycle): Call exec_inst only if fetch_inst did some work. * sky-vu.c (vu_attach, vu[01]_device): Revamped initialization to ensure complete clear of tail part of struct at attach time. (vu0_busy): Fix thinko. (vu0_macro_issue): Adapt to new "l" flag. (vu0_micro_interlock_released): Ditto. (write_vu_special_reg): Ditto. (read_vu_special_reg): Compute VBS0/VBS1 bits more explicitly. The other VU status bits are not yet computed. [ChangeLog] * interp.c (decode_coproc): Do not apply superfluous E (end) flag to upper code of generated VU instruction.
This commit is contained in:
parent
0dee6af299
commit
174ff2242b
2 changed files with 10 additions and 2 deletions
|
@ -1,3 +1,11 @@
|
|||
start-sanitize-sky
|
||||
Tue Apr 7 18:32:49 1998 Frank Ch. Eigler <fche@cygnus.com>
|
||||
|
||||
* interp.c (decode_coproc): Do not apply superfluous E (end) flag
|
||||
to upper code of generated VU instruction.
|
||||
|
||||
end-sanitize-sky
|
||||
|
||||
start-sanitize-sky
|
||||
Mon Apr 6 19:55:56 1998 Frank Ch. Eigler <fche@cygnus.com>
|
||||
|
||||
|
|
|
@ -3394,7 +3394,7 @@ decode_coproc (SIM_DESC sd,
|
|||
{
|
||||
unsigned_4 vu_upper, vu_lower;
|
||||
vu_upper =
|
||||
0x40000000 | /* bits 31 .. 25 */
|
||||
0x00000000 | /* bits 31 .. 25 */
|
||||
(instruction & 0x01ffffff); /* bits 24 .. 0 */
|
||||
vu_lower = 0x8000033c; /* NOP */
|
||||
|
||||
|
@ -3413,7 +3413,7 @@ decode_coproc (SIM_DESC sd,
|
|||
(i_5_0 >= 0x3c && i_10_6 >= 0x0c)) /* VMOVE .. VRXOR */
|
||||
{ /* N.B.: VWAITQ already covered by prior case */
|
||||
unsigned_4 vu_upper, vu_lower;
|
||||
vu_upper = 0x400002ff; /* END/NOP */
|
||||
vu_upper = 0x000002ff; /* NOP/NOP */
|
||||
vu_lower =
|
||||
0x10000000 | /* bits 31 .. 25 */
|
||||
(instruction & 0x01ffffff); /* bits 24 .. 0 */
|
||||
|
|
Loading…
Reference in a new issue