summaryrefslogtreecommitdiffstats
path: root/sys/sparc64/include/wstate.h
Commit message (Collapse)AuthorAgeFilesLines
* Implement a slightly different window spill/fill algorithm for dealingjake2001-09-031-0/+90
with user windows in kernel mode. We split the windows using %otherwin, but instead of spilling user window directly to the pcb, we attempt to spill to user space. If this fails because a stack page is not resident (or the stack is smashed), the fault handler at tl 2 will detect the situation and resume at tl 1 again where recovery code can spill to the pcb. Any windows that have been saved to the pcb will be copied out to the user stack on return from kernel mode. Add a first stab at 32 bit window handling. This uses much of the same recovery code as above because the alignment of the stack pointer is used to detect 32 bit code. Attempting to spill a 32 bit window to a 64 bit stack, or vice versa, will cause an alignment fault. The recovery code then changes the window state to vector to a 32 bit spill/fill handler and retries the faulting instruction. Add ktr traces in useful places during trap processing. Adjust comments to reflect new code and add many more.
OpenPOWER on IntegriCloud