On Tue, 3 Mar 2009, David Daney wrote: > Note the libgcc currently makes the assumption that the layout of the stack > for signal handlers is fixed. The DWARF2 unwinder needs this information to > be able to unwind through signal frames (see gcc/config/mips/linux-unwind.h), > so it is already a de facto part of the ABI. I do hope it was agreed upon at some point. I certainly cannot recall a discussion at the linux-mips list, but I did not always follow it closely enough either, so I may have missed the discussion. The interface is meant to be internal to Linux, so the usual rule of volatility apply. The structure is not defined in a header even. > > Furthermore I am requesting that the kernel recognises the special meaning > > of the value of one stored in the slot designated for the $zero register and > > never places such a value itself there. > > Seems reasonable to me as currently a zero is unconditionally stored there. It is, but is should be architected, not assumed. Also contexts built with the *context() functions are meant to be usable by them only -- software will still be able to assume the value in the slot when constructed by the kernel. Maciej