[LMH] e1 tag diag

nyef@lisphacker.com nyef@lisphacker.com
Fri, 21 Oct 2005 15:14:27 +0100


Brad Parker writes: 

> Hi - 
> 
> Both meroko and nevermore pass the E1 tag diag (#7) but both report a
> bad condition code for condition 17.  I thought it was an ALU bug
> in meroko but I noticed nevermore does that same thing. 
> 
> I looked at the microcode and I am wondering if it's a bug int he microcode
> which no one noticed. 
> 
> Below is a little history trace when the problem occurs. The code at
> 10131 and 10132 make sense.  It sets the tag memory address in the 
> read at 10132. 
> 
> The code at 10134 & 10135 does not make sense.  It does the imod-low setting
> with (L=5 C=10) but then it does an alu instruction.  This doesn't seem
> right at all. The (L=5 C=10) field is for a jump.

The condition field (BYTE-FIELD 5 10) is live on all instructions other than 
DISPATCH instructions. But you're right that it doesn't make sense. There's 
no direct reference to this code, but my disassembly shows: 

L-10129 ((M-5) LDB (BYTE-FIELD 5 28) M-29 M-2)
L-10130 ((M-5) DPB (BYTE-FIELD 5 25) M-5 M-2)
L-10131 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 10) M-29 M-2)
L-10132 (JUMP-XCT-NEXT L-9593 IF-IN-CLASS M-5)
L-10133 ((M-31) SETA A-64)
L-10134 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 10) M-29 M-2)
L-10135 ((M-31) SETA A-64)
L-10136 (JUMP-XCT-NEXT L-9593)
L-10137 ((M-31) SETZ) 

It would almost make sense if there were an ABJ on L-10135, but there isn't. 

And the next bit of code is L-10138, which doesn't have a direct reference 
in the code, but looks like it does a write to tag classifier memory. I do 
see both addresses in A-memory (at #x27e and #x274), though. 

I think that passing this test was a no-brainer for both of us, as we'd have 
put all the machinery in back at the beginning (L-348 to L-364 in the STBM 
PROM contains a loop that tests the tag classifier memory and this has to 
pass long before anything appears in the SIB framebuffer). 

> I suspect that the diag passed on the real hardware and no one ever noticed
> this bug.

That may well be the case. If we get Lisp to run, we'll probably just muffle 
the diagnostics on that condition. 

> [this is more for Daniel & Alastair and anyone else who's hacking on meroko
> and nevermore] 
> 
> -brad

 --Alastair Bridgewater