Received: (from major@localhost)
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) id LAA75920
	for pups-liszt; Wed, 10 May 2000 11:36:00 +1000 (EST)
Received: from psychwarp.psych.usyd.edu.au (psychwarp.psych.usyd.edu.au [129.78.83.26])
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) with ESMTP id LAA75916
	for <pups@minnie.cs.adfa.edu.au>; Wed, 10 May 2000 11:35:54 +1000 (EST)
Received: (from johnh@localhost)
	by psychwarp.psych.usyd.edu.au (8.9.1a/8.9.1) id LAA02228
	for pups@minnie.cs.adfa.edu.au; Wed, 10 May 2000 11:35:53 +1000 (EST)
Date: Wed, 10 May 2000 11:35:53 +1000 (EST)
From: johnh@psych.usyd.edu.au
Message-Id: <200005100135.LAA02228@psychwarp.psych.usyd.edu.au>
To: pups@minnie.cs.adfa.edu.au
Subject: Re: Help: PDP-11 instruction classification (again!)
Sender: owner-pups@minnie.cs.adfa.edu.au
Precedence: bulk


> lars brinkhoff wrote :-
> 
> I'm adding PDP-11 support to GNU binutils, and I need help on
> classifying the instruction set.

I forgot to mention a critical point. Any PDP-11 runing Unix (except very
early versions and Miniunix), and certainly from Edition 6 onwards, MUST have
EIS. Even the Unix bootstraps used EIS. So binaries built for Unix, will run
on a 11/34/35/40/44/45/50/53/55/60/70/73/83/84/93/94 !!

Floating point is a bit more problematic. The kernel (see crevat latter) didn't
require it, but had to save FP status and registers on context switches.
Quite a few processors had the FPP as an option, and so there was FPP emulation
build into the kernel (conditionally). There were versions of the C compiler
that had code tables for the FIS, to suit the 11/35/40.

I have a distant memory, that I have seen FPP instructions used for some
integer arithmetic for speed. I cannot recall if it was in the kernel or
C libraries. It was conditional, and may have been in the latter BSD versions,
but I don't have the source code online.


