[net.micro.68k] Bourne sh, 68k's and segment traps

jk@plx.UUCP (jk) (06/14/84)

I am interested in hearing about solutions others have used for
instruction restarts on 68000's. My current "challange" is the
Bourne shell and the way it catches SIGSEGV's and sbrk()'s to
grow its data space. We currently have code in our kernel that
tries to match the saved instruction register with some number of
instructions before the (bogus) saved pc. This works in most cases,
like automatic stack extension. It fails miserably if it finds
the right opcode but it is not the correct instruction or it is
not the opcode field of an instruction. In the case of the sh
this is disaterous as the sh blindly sbrk()'s more space, returns
from the signal catching code to re-execute the wrong instruction
again, sbrk()'s for more space.....boom, boom out go the lights.

Has anyone got a good solution for this problem?
Thanks in advance,

		(no cute signoff yet)

jk
..!decvax!sun!plx!jk

jec@iuvax.UUCP (06/20/84)

I would also be interested in possible solutions to the problem.  I am
especially interested if someone knows of a way to restart the "move
multiple registers" command since there is pretty much no way that I
know of to determine where the instruction failed.

--


					James Conley
					Indiana University
					68K Education Board Project
					...{isrnix|iuvax}!jec