Subject: Re: illegal instruction trap booting -current kernel
To: Jason R Thorpe <thorpej@wasabisystems.com>
From: Frederick Bruckman <fredb@immanent.net>
List: port-mac68k
Date: 03/05/2003 06:05:05
On Tue, 4 Mar 2003, Jason R Thorpe wrote:
> On Wed, Mar 05, 2003 at 01:00:29AM -0500, John Klos wrote:
>
> > > Taking a hint from fpsp, I tried this, instead...
> >
> > > + /* Loading '0.0' will change FPU to "idle". */
> > > + fmove.x #0,%fp0
> >
> > As we all like bootable and working source trees, I've committed this.
> > How'd it get broken in the first place is what I'd like to know...
>
> ...as long as it's actually correct...
I find under FSAVE in "M68000 Family Programmer's Reference Manual",
Any floating-point operations in progress when an FSAVE instruction
is encountered can be completed before the FSAVE executes, saving
an IDLE state frame. Execution of instructions already in the
floating-point unit pipeline continues until completion of all
instructions in the pipeline or generation of an exception by one
of the instructions. An IDLE state frame is created by the FSAVE if
no exceptions occurred; otherwise, a BUSY or an UNIMP stack frame
is created.
So any single instruction that doesn't create an exception should
do, or do we need to fill "the pipeline"? How long is the pipeline?
Frederick