stack growth with floating point - (nf)

rand at orstcs.UUCP rand at orstcs.UUCP
Sun Sep 4 17:38:26 AEST 1983


#N:orstcs:3300002:000:1135
orstcs!rand    Aug  1 17:35:00 1983

Subject: 2.8bsd, bug in stack growth with floating point

Applies to 2.8 on 11/23, 2.9 should be checked.  Sorry if this
has been reported years ago.

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
	.
	.

Manifestation of bug:  We are running a VERY large group of programs
which do a lot of floating point and allocate large arrays on the stack.
After running the program group we get a few very bizzare system errors.

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

P.S. Rand's new address after Aug 8 will be: rand.sequel at RAND-RELAY
     or ogcvax!sequel!rand. 



More information about the Comp.bugs.2bsd mailing list