This fixes a number of issues in the PPC32/PPC64 ports.
There are some mistakes in the stack frame layout produced by makecontext, particularly for PPC64.
getcontext at least cannot be correctly written in C. If it spills its return address to the stack, it can be clobbered before the context is restored with setcontext or swapcontext. This results in the second return from getcontext returning to the wrong location.
This fixes a number of issues in the PPC32/PPC64 ports.
makecontext
, particularly for PPC64.getcontext
at least cannot be correctly written in C. If it spills its return address to the stack, it can be clobbered before the context is restored withsetcontext
orswapcontext
. This results in the second return fromgetcontext
returning to the wrong location.