Subject: pkg/34902: TME sun3 emulator asserts with bad fastread after "b st()" after stop-a
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <sigmfsk@aol.com>
List: pkgsrc-bugs
Date: 10/24/2006 17:25:00
>Number:         34902
>Category:       pkg
>Synopsis:       TME sun3 emulator asserts with bad fastread after "b st()" after stop-a
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Oct 24 17:25:00 +0000 2006
>Originator:     arthur townsend
>Release:        3.0
>Organization:
>Environment:
3.0 for i386
>Description:
After starting TMESH, enter stop-a (via right-control-f1 A), then enter b st().  TME exits with:

tmesh> assertion "TME_M68K_TLB_OK_FAST_READ(tlb, function_code_program, ic->tme_m68k_ireg_pc, ic->tme_m68k_ireg_pc) || (emulator_load - 1) == emulator_load_last" failed: file "m68k-execute.c", line 155, function "_tme_m68020_execute"
[1]   Abort trap (core dumped) tmesh startjunk

>How-To-Repeat:

>Fix:
I commented out the assertion via the following patch, so that I could continue running the emulator and see if any other assertions popped up.

TME seems to run fine with the following commented out (or when TME is built with --disable-debug) but the problem should be investigated before electing to permanently remove the assertion.

--- m68k-execute.c.orig2        2006-10-24 07:31:54.000000000 -0400
+++ m68k-execute.c      2006-10-24 07:33:03.000000000 -0400
@@ -151,8 +151,13 @@
     }
     emulator_load_start = emulator_load = tlb->tme_m68k_tlb_emulator_off_read +
 ic->tme_m68k_ireg_pc;
     insn_fetch_sizes = 0;
+
+/*  this asserts true when stop-a (right-ctrl-f1 a) and "boot st()"
+
     assert(TME_M68K_TLB_OK_FAST_READ(tlb, function_code_program, ic->tme_m68k_i
reg_pc, ic->tme_m68k_ireg_pc)
           || (emulator_load - 1) == emulator_load_last);
+*/
+
     tme_m68k_verify_begin(ic, emulator_load_start);
 #else  /* !_TME_M68K_EXECUTE_FAST */
     linear_pc = ic->tme_m68k_ireg_pc;