We need XMM registers to handle varargs with the Win64 ABI. Before we would silently generate bad code resulting in an assertion failure elsewhere in the backend.
@rnk @thegameg I see there was similar work in D27522 for register returns. I don't know if report_fatal_error is ok to do here, AFAICT there's no way to do something sensible but die in this situation.
What @rnk ended up doing in r302835 is emit a diagnostic (you can probably re-use errorUnsupported). The inconvenient with a diagnostic is that you might hit some asserts and you might have to set up some dummy state to satisfy the rest of the function. The advantage is that, if this is reached through a clang invocation the diagnostic will show up as a nice error while report_fatal_error will show up as a crash instructing the user to file a bug report.