Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Jan 1999 22:58:21 -0800 (PST)
From:      grehan@iprg.nokia.com
To:        freebsd-gnats-submit@FreeBSD.ORG
Subject:   i386/9360: /boot/loader contains floating point instructions
Message-ID:  <199901070658.WAA16148@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         9360
>Category:       i386
>Synopsis:       /boot/loader contains floating point instructions
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jan  6 23:00:01 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     Peter Grehan
>Release:        3.0-current
>Organization:
Nokia IPRG
>Environment:
Use kern.flp from the -current snapshot.
>Description:
Floating point code is used in the tertiary boot-loader, /boot/loader

_setjmp and _longjmp save/restore floating point state, but the
system may not have an FPU, in which case the boot will fail.
There are many 386 and 486 embedded CPUs which do not have an
FPU (e.g. Nokia 9000 communicator).

 One of the routines in the Forth interpreter, ficl/dict.c:dictHashSummary()
uses floating point. This routine should be reworked, or removed.
>How-To-Repeat:
Boot kern.flp on a 386 or 486 system without an FPU. Alternatively,
try the bochs emulator, which is a 386 emulator without an FPU
(www.bochs.com)
>Fix:
Use a custom _setjmp and _longjmp in libstand.a that does not
save/restore floating point register state.

 Remove, or modify, the routine in the Forth interpreter that uses
floating point calculations.
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901070658.WAA16148>