Received: (from major@localhost)
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) id KAA03361
	for pups-liszt; Wed, 8 Sep 1999 10:43:07 +1000 (EST)
Received: from moe.2bsd.com (0@MOE.2BSD.COM [206.139.202.200])
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) with ESMTP id KAA03354
	for <pups@minnie.cs.adfa.edu.au>; Wed, 8 Sep 1999 10:42:59 +1000 (EST)
Received: (from sms@localhost)
	by moe.2bsd.com (8.9.0/8.9.0) id RAA15948
	for pups@minnie.cs.adfa.edu.au; Tue, 7 Sep 1999 17:49:36 -0700 (PDT)
Date: Tue, 7 Sep 1999 17:49:36 -0700 (PDT)
From: "Steven M. Schultz" <sms@moe.2bsd.com>
Message-Id: <199909080049.RAA15948@moe.2bsd.com>
To: pups@minnie.cs.adfa.edu.au
Subject: Re: Diff between 11/20 and 11/45?
Sender: owner-pups@minnie.cs.adfa.edu.au
Precedence: bulk

> From: Carl Lowenstein <cdl@mpl.ucsd.edu>
> The first genuine user-mode difference that I remember coming across was
> an incompatibility in the result of
> 
> 	MOV SP, -(SP)

	Similarily

		MOV R0,(R0)+

	won't work as expected on some 11s.  I suspect that the even less
	likely case of "mov pc,-(pc)" won't work either :-)

> It isn't really clear to me why one would want to use this particular
> instruction, however it turned out to hang both BASIC and FOCAL at the

	Fairly common when setting up call frames, etc.  You want the
	address of where the arguments start and since they're pushed on the
	stack 'sp' is the value you want.

	There's a comment in 2BSD (I think it came from V7) where mention is 
	made that "we can't do sp,-(sp) because it won't work on the 11/40".

> time.  A zero-length patch wasn't too hard to figure out.

	Hmmm, interesting.  The workaround I saw took an extra instruction.

	Steven Schultz
	sms@moe.2bsd.com

