Subject: Re: Fixing the R4000 end of page bug
To: None <rumble@ephemeral.org>
From: Paul Koning <pkoning@equallogic.com>
List: port-mips
Date: 07/27/2006 09:15:04
>>>>> "Stephen" == Stephen M Rumble <stephen.rumble@utoronto.ca> writes:

 Stephen> Hello all, I've begun looking into fixing some long-standing
 Stephen> problems with revision 2.2 R4000 CPUs on SGI systems and
 Stephen> would like any input whatsoever from those more experienced
 Stephen> with MIPS. The most prominent bug in this revision occurs
 Stephen> when a branch or jump exists as the last instruction in a
 Stephen> page, the following page (containing the delay slot
 Stephen> instruction) is not mapped, and a few other conditions
 Stephen> (including a data cache miss) are met by the two prior
 Stephen> instructions. ...

Sounds like the old SB1 rev 1 bug.  The best answer is to use the same
solution they used, which is to tweak the GCC code generator to align
all branches to modulo 8 boundaries.  That's simple, reliable, and has
very little performance impact.

    paul