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