[LLVMdev] Win64 Calling Convention problem

Anton Korobeynikov anton at korobeynikov.info
Fri Dec 4 07:49:54 PST 2009

Hello, Stephan

> Hmm, maybe I can explain this: The Microsoft docs state that for
> unprototyped functions floating-point values need to be passed as
> double precision in both the floating-point registers (XMMn) and the
> integer registers (RCX, etc.). That obviously doesn't work for SSE
> vectors because they don't fit into the integer registers. So, there's
> only pass-by-reference of the first four vectors, which they might
> have generalized to all functions (even with complete signatures) for
> consistency. Still weird though ...
Right. Since this is definitely a waste of resources (=registers).
Looks like they didn't care about performance at all!

With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University

More information about the llvm-dev mailing list