pub fn lists(func: &mut Func, conv: &CallRegs)Expand description
Rewrites every va_arg, va_copy and va_end in the function, and leaves va_start alone.
Those three are the ones made only of reads and writes of a list some pointer already reaches,
so none of them needs to know anything about the frame and all three can be done here.
va_start is the one that does need the frame, and crate::lower has it.
A convention whose list is not the four field one is left alone entirely, and a function using one is then refused further down with the message about a rule that does not exist. Windows is the one such convention here: its list is a plain pointer, its callee spills its four register arguments into the shadow space the caller already reserved rather than into an area of its own, and none of the three rewrites below is right for any of that.