[net.bugs.v7] Stack growth bug on non-separate I/D machines

guy@rlgvax.UUCP (Guy Harris) (08/06/83)

The following was originally posted by:

	Dale Mosby, Rand Dow:  rand.orstcs@RAND-RELAY

as a bug in 2.8BSD, but the bug comes from V7 (and has been fixed
in System III).

When the stack is expanded, routine `backup' (file mch.s)
is executed to take care of instruction restart.  A flag
called `fflg' is incremented when the instruction is a
floating point instruction.  Unfortunately this flag is NEVER
cleared so subsequent stack expands may not be executed correctly.
This remains like that until the system is rebooted.  The single
instruction fix follows:  file mch.s (or mch.c)

	.
	.
/* hard part
 * simulate the ssr2 register missing on 11/40
 */
backup:
	clr	r2		/ backup register ssr1
	mov	$1,bflg		/ clrs jflg
	clrb	fflg		/ INSERTED INSTRUCTION ****
	mov	ssr+4,r0
	jsr	pc,fetch
	.
	.