This allows more call sequences to use pushes instead of movs when optimizing for size.
In particular, calling conventions that pass some parameters in registers are now supported.
(This still needs more testing to make sure it doesn't break anything. Reid, if you have anything specific in mind that you think may go wrong, let me know.)