D-Programming-Language/druntime — pull request #414 by alexrp (2013-02-15 04:27:26+00:00)
Title: Some tweaks to register saving in callWithStackShell().

This makes it so that registers are saved to a global variable
instead of on the stack (with non-GDC compilers). This has a few
advantages:

* Most importantly: It makes no assumption about stack layout (so
the code will work fine with e.g. LLVM and not overwrite GPRs
accidentally).
* No architecture-specific cleanup code has to be written (i.e.
no popad and the likes). We just zero out the machineRegisters
variable.
* Porting is slightly easier now since all that has to be done is
write a bunch of fields and some assembly that moves registers
to those fields in the machineRegisters variable.

Review?/CC: @dawgfoto, @klickverbot, @ibuclaw