Subject: Re: sysinst bug and errors
To: Frederick Bruckman <fredb@immanent.net>
From: Dave Huang <khym@azeotrope.org>
List: port-mac68k
Date: 09/03/2002 20:20:10
On Tue, 3 Sep 2002, Frederick Bruckman wrote:
> What happens if you build a kernel without FPSP (with or without FPU)?
If I'm not mistaken, options FPSP only matters if you're running on a
68[LC]040... sys/arch/mac68k/mac68k/locore.s does a
cmpl #FPU_68040,_C_LABEL(fputype) | 68040 FPU?
and only calls the FPSP routines if the comparison is true. So a kernel
without FPSP shouldn't be any different on an '030 machine.
I do wonder about this bit of code around line 581 of locore.s though:
ENTRY_NOPROFILE(fpunsupp)
#if defined(M68040)
cmpl #FPU_68040,_C_LABEL(fputype) | 68040 FPU?
jne _C_LABEL(illinst) | no, treat as illinst
#ifdef FPSP
jmp _ASM_LABEL(fpsp_unsupp) | yes, go handle it
#endif
Lfp_unsupp:
#endif /* M68040 */
#ifdef FPU_EMULATE
clrl %sp@- | stack adjust count
moveml #0xFFFF,%sp@- | save registers
moveq #T_FPEMULD,%d0 | denote as FP emulation trap
jra _ASM_LABEL(fault) | do it
#else
jra _C_LABEL(illinst)
#endif
Shouldn't that jne _C_LABEL(illinst) | no, treat as illinst
be a jne _C_LABEL(Lfp_unsupp)?
CVS says:
revision 1.80
date: 1997/06/29 06:07:39; author: scottr; state: Exp; lines: +590 -745
Get several cleanup chores out of the way. The code is functionally
identical to the previous incarnation.
However, a diff between 1.79 and 1.80 shows:
- cmpl #FPU_68040,_fputype | 68040? (see fpu.c)
- jne Lfp_unsupp | no, treat as illinst
+ cmpl #FPU_68040,_C_LABEL(fputype) | 68040 FPU?
+ jne _C_LABEL(illinst) | no, treat as illinst
which doesn't look like a functionally identical change to me :)
--
Name: Dave Huang | Mammal, mammal / their names are called /
INet: khym@azeotrope.org | they raise a paw / the bat, the cat /
FurryMUCK: Dahan | dolphin and dog / koala bear and hog -- TMBG
Dahan: Hani G Y+C 26 Y++ L+++ W- C++ T++ A+ E+ S++ V++ F- Q+++ P+ B+ PA+ PL++