On Tue, Oct 26, 2004 at 09:41:09AM +0200, Wouter Verhelst wrote:
> The LC040 support, probably, even if it's deemed nearly impossible to
> do. The problem is not the LC040 per se; the problem is that there are
> quite a bunch of bad LC040 processors out there. These work incorrectly
> in that they do not correctly keep their registers when an FPU interrupt
> goes off; as a result, the kernel returns to an incorrect CPU state
> after handling the FPU, so stuff obviously doesn't work.

It is actually a little more specific than that. The bug only happens
if the instruction is the last word of a page, and the next page has
to be loaded by the fault handler. It's an interaction between the page
fault handler and the emulation trap.

> Not being a kernel hacker myself, I've been told that it may be
> impossible to work around this processor bug.

Definitely not impossible. Apple wouldn't have been able to use these
chips otherwise. The bug affects the A-line trap as well. Since Apple
used A-line instructions for system calls, they needed to fix it in
software. However, they only fixed it for that one handler since they
didn't officially support FPU emulation.

        Brad Boyer
        [EMAIL PROTECTED]

Reply via email to