Subject: bin/2408: cc -m68060 creates 32->64bit multiplications.
To: None <gnats-bugs@NetBSD.ORG>
From: Ignatios Souvatzis <is@jocelyn.rhein.de>
List: netbsd-bugs
Date: 05/13/1996 03:15:01
>Number: 2408
>Category: bin
>Synopsis: cc -m68060 creates 32->64 bit multiplications.
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: bin-bug-people (Utility Bug People)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue May 14 07:35:06 1996
>Last-Modified:
>Originator: Ignatios Souvatzis
>Organization:
>Release: 1.1
>Environment:
System: NetBSD jocelyn.rhein.de 1.1B NetBSD 1.1B (DRACO) #56: Mon May 13 02:35:50 MET DST 1996 is@jocelyn.rhein.de:/bulk/s2/src/sys/arch/amiga/compile/DRACO amiga
Last weeks compiler.
The latest compiler/assembler changes (for the assembler to
accept -m68060 and not to bail out on some FP instructions) isn't
yet in, in case this matters.
>Description:
If I make a 68060 kernel with the next-to-latest cc -m68060,
a 32->64 bit multiplication is created in grf_rh.o, making the
kernel crash in the graphics board setup (that is, before the
kernel debugger is available.)
Assembler diff excerpt (< is from a work-in-progress version of
the compiler, > from last weeks)
941,942c942,946
< movel d4,d3
< divul #13982,d3
---
> movel a3,d1
> mulul d6,d0:d1
> movel d0,d3
> moveq #13,d7
> lsrl d7,d3
>How-To-Repeat:
config DRACO; cd ../compile/DRACO; make; su; cp netbsd /; reboot
>Fix:
Fix: not known yet.
Workaround: install the 060sp unimplemented integer handler
at compilation time. Unfortunately, this makes kernels without
the 060 software support package impossible.
>Audit-Trail:
>Unformatted: