Fix an ugly bug where, if outgoing arguments were stack allocated, they would clobber spilled register slots.
If targetHandlesStackFrameRounding returns true, then PEI::calculateFrameObjectOffsets won't bother to reserve space for outgoing arguments in the frame, which in turn causes issues when frame pointer elimination is enabled.
Reenable optimization to use immediate operands for atomic operations where possible.
I previously backed this out because it triggered an unrelated latent bug with stack parameter allocation, but that has been fixed now.