The SSE+ family of registers takes the same addressing as the (old school) FPU and you can't use both at the same time. AFAIK it can be done to switch them however, there are examples for this but not in Pascal inline assembler. I could not find an example for Windows x86_64, though. For *nix x86_64 there are plenty. But it is either/or! not both.Note as far as I can tell this needs to be done in plain assembler anyway: MSWindows x86_64 is rather strict. It can be it isn't even possible in inline assembler. Or even prohibited, but I am not quite sure, since it can be done on other platforms with pure assembler.

I apparently have to go via the stack, eh. First copy xmm0 to some memory location using pextrq, and then load it back again with fld (because fld only accepts memory operands). There is no chance in turning off parameter passing in xmm0 (except for calling the function on my own [using another inline-asm-block]).

For some weird reason my @result is zero (nil) now, causing a 216 RTE. Oh gosh, can't it just work? After nexting