Some newer compiler (for instance MSVC 10 for x86_64 and itanium) do not support inline assembler. . Inlined assembler generates code bloating which is not welcome on embedded systems.
Boost.Context provides the low level API fcontext_t which is implemented in assembler to provide context swapping operations. fcontext_t is the part to port to new platforms.
Context switches do not preserve the signal mask on UNIX systems.
fcontext_t is an opaque pointer.