rcd@ico.isc.com (Dick Dunn) (02/20/91)
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@ico.isc.com -or- ico!rcd Boulder, CO (303)449-2870 ...But is it art?