Subject: Re: Code w/ 680x0 (x<=4) instructions not implemented in 68060
To: Gordon W. Ross <gwr@mc.com>
From: Ingolf Koch <ingolf@djo-jena.de>
List: port-m68k
Date: 06/23/1998 17:47:30
--MimeMultipartBoundary
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi,

> I don't have my mc68060 book here, but I thought the
> introduction said it handled all mc68020 instructions.
> Is that not the case?

As I do not have any 680x0 (x>0) book at all, I cannot
tell. But the amount of time ssh{,d} spends in kernel
mode when calling the m68k assembler routines was a
strong indication for me that there must be instructions
which have to be emulated.

This is especially true for addmul_1.S and submul_1.S.

> If not, which mc68020 instructions don't work?

See above.

> In all my experience with m68k boxes, the mc68020
> instruction set has always been used as the "least
> common subset" that one uses for code that should
> run on all m68k CPUs. *

I had similar problems with former versions of libc
which contained assembler code for ldexp() (and others)
with non-68060 instructions. This disappeared when
Ignatios introduced the M68060 make variable (or was it
MC68060?). If set, libc is built with generic code for
ldexp() instead of the assembler equivalents.

Regards
    Ingolf
--

Ingolf Koch         http://www.minet.uni-jena.de/~ingolf/
PGP: 0x7B3B5661  213C 828E 0C92 16B5  05D0 4D5B A324 EC04
--MimeMultipartBoundary--