improve callWithStackShell

- compatible with LDC's inline asm
- only push callee save registers