pugs (03/15/83)
The 68010 solves the virtual machines problems of the 68000, but introduces a new one of its own. The stack for a bus error now includes numerous words of "internal state information" will allows the 68010 to resume (via RTE) instructions which are interrupted due to bus errors (e.g., page faults). If a virtual 68010 is to be possible and reliable, there must be some way for a virtual machine monitor to implement a virtual RTE instruction. The problem is that the internal state information on the bus error stack is undocumented and thus cannot be validated or translated on the way from the virtual machine to the real machine. For instance, a virtual machine may have total garbage on its stack and then execute a RTE -- if this garbage is passed on to the real machine it may wreak havoc, but there is no way to tell if it's garbage or not. If the long format RTEs are not implemented by the virtual machine monitor then there is no way to pass virtual bus errors to the virtual machine. The sneaky way around this problem is to run virtual 68000s, not 68010s, because the 68000 does not have the long format RTEs. Unfortunately, those of you who wanted to debug your virtual machine operating systems under a virtual machine are out of luck. Motorola has been told about this problem, but it's a little late for a good fix. Hopefully, they can be persuaded to document the internal state, although even so it may be too complex to consider validating in software. Tom Lyon sun!pugs