FP regs and user area

Dick Dunn rcd at ico.isc.com
Wed Feb 20 06:23:26 AEST 1991


One more try to clarify where the emulated floating point registers belong,
and why.

There is one user structure per process.  It is a kernel data structure
intended to hold all of the "process state" information except the little
bit that is needed even when a process is completely swapped out.  The
user structure is the logical place for register-save areas, for both the
regular and the floating-point registers.  That's where they've been for
ages.  There are various reasons for doing things this way; if you propose
moving the registers elsewhere, you have to be able to answer a variety of
other questions about access, and there are various gotchas.

There are two separate questions being beaten about (and stirred together)
here:
	1.  Is it possible to put the FP registers in the user structure,
	    allow the emulator to work properly, yet protect all other
	    important areas in the user structure?
	2.  Can the floating-point registers be kept somewhere other than
	    the user structure?
The answer to question (1) is "yes".  It is true without introducing any
intermediate user<->supervisor state changes, and without mucking about in
the emulator.  This makes question (2) largely academic...if you don't
have to move the registers elsewhere, there's no point in doing so.

Also, just to re(re-re-)-iterate, the bug is *not* in the emulator itself.
In effect, the emulator is told where to find the registers.
-- 
Dick Dunn     rcd at ico.isc.com -or- ico!rcd       Boulder, CO   (303)449-2870
   ...But is it art?



More information about the Comp.unix.sysv386 mailing list