Implementation is NOT compatible with XL. Instead it handles all ByVals
with greater alignment then pointer width the same way XL handles Byvals
that have vector members. For overaligned objects that do not contain
vectors XL does not align them properly if they are passed in the GPR
argument registers.
This patch was originally written by Sean Fertile (@sfertile) and I am
posting on phabricator.
nit: emit the value "16" based on the value of StackAlign rather than hardcoding 16 again.