C99 6.5.2.2p6 requires float->double promotion for floats in the variadic region of a call; w6c emitted MOVSS (4B), so a C variadic's va_arg(double) read 8B of garbage. Promote at push (CVTSS2SD) so the 8B slot holds a real double, covering the XMM-reg and >8-float spill cases uniformly; fi/AL XMM-count is unchanged. cstage only; the wwstage twin rides C2 (#10), which adds wwstage's C-variadic-call codegen.