Received: (from major@localhost)
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) id BAA79057
	for pups-liszt; Thu, 11 May 2000 01:39:06 +1000 (EST)
Received: from fw0.transarc.com (xfw.transarc.ibm.com [192.54.226.51])
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) with ESMTP id BAA79053
	for <pups@minnie.cs.adfa.edu.au>; Thu, 11 May 2000 01:38:58 +1000 (EST)
Received: from mailhost2.transarc.ibm.com (mailhost2.transarc.ibm.com [9.38.192.125]) by fw0.transarc.com (AIX4.2/UCB 8.7/8.7) with ESMTP id LAA09672 for <pups@minnie.cs.adfa.edu.au>; Wed, 10 May 2000 11:18:06 -0400 (EDT)
Received: from smithfield.transarc.ibm.com (smithfield.transarc.ibm.com [9.38.192.92]) by mailhost2.transarc.ibm.com (8.8.0/8.8.0) with SMTP id LAA28911 for <pups@minnie.cs.adfa.edu.au>; Wed, 10 May 2000 11:37:56 -0400 (EDT)
Date: Wed, 10 May 2000 11:37:51 -0400 (EDT)
From: Pat Barron <pat@transarc.ibm.com>
To: pups@minnie.cs.adfa.edu.au
Subject: Re: Help: PDP-11 instruction classification (again!)
In-Reply-To: <200005100135.LAA02228@psychwarp.psych.usyd.edu.au>
Message-ID: <Pine.GSO.3.96.1000510111921.6129B-100000@smithfield.transarc.ibm.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-pups@minnie.cs.adfa.edu.au
Precedence: bulk

On Wed, 10 May 2000 johnh@psych.usyd.edu.au wrote:
> 
> 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.
> 

This discussion brings back memories ... I once found a bug in the kernel
floating-point stuff on V7m on an 11/40 (without FIS).  Turned out that,
if you took a zero-length file, chmod'ed it to be executable, and then
tried to run it, the kernel would take a path through the code that it
didn't normally take, in which it tried to save the *real* FP registers -
which were not there, and attempting to touch the missing registers would
panic the machine.

I found this while I was a lab assistant for a computer architecture
course, taking care of this 11/40 that the department had just aquired
(another department was about to discard it, so we picked it up ...), and
which was being used by students learning assembly language programming.
As you might imagine, these folks generated zero-length a.out files *all
the time* (since that's what 'as' would sometimes output if your source
code had errors in it), and sometimes they'd try to execute them.
Therefore, the machine was crashing a couple of times a day until I found
and fixed the bug ...

--Pat.



