Subject: Re: Flushing the I-cache from user mode?
To: Frederick Bruckman <fb@enteract.com>
From: Nyef <nyef@softhome.net>
List: port-mac68k
Date: 03/28/2001 14:03:48
On Wed, 28 Mar 2001, Frederick Bruckman wrote:

[introductory material elided]

> > 0xaef8 (m68k_sync_icache+8):    movel 0x80000004,%d0

[remainder of disassembly elided]

> > The absolute address in the movel instruction at 0xaef8 kinda worries me,
> > since I don't know what it's doing...
> 
> It's writing the immediate value 0x80000004 into register %d0. All
> that is, is setting up the final register argument for the "trap".
> 
> It's evidently choking in the trap.

Okay, checking cvsweb (which I should have done earlier), I note that this
was changed in rev 1.3 of basesrc/lib/libarch/m68k/m68k_sync_icache.S,
with a comment about a missing '#' character, and it having been useless
for more than a year.

It _should_ have been writing the immediate value, but it was going for
the absolute address instead.

The fix appears to be in 1.4.3 and 1.5, which means I need to replace my
libm68k...

---------------------------
All programming can be viewed as an exercise.
---------------------------
Alastair Bridgewater
e-mail: nyef@softhome.net