I've started working on using pushes instead of esp-relative movs to pass function arguments.
The main motivation is code size (e.g. 2 bytes instead of 7 to pass an 8-bit immediate), but it some cases it is also faster.
This is just the first step, that handles the simplest case:
- x86-32 calling convention, everything is passed through the stack.
- There is no reserved frame (for x86 this happens is there is a dynamic stack allocation in the caller).
Does this look reasonably sane?