version( X86_64) {} else { static assert( !"need x86_64 CPU" ); }
version( linux) {} else { static assert( !"need Linux" ); }
struct r128 { ulong r1, r2; }
r128 checkRegsC( ulong a, ulong b, ref ulong c ) pure nothrow @nogc @trusted {
r128 checkRegsD( ulong a, ulong b, ref ulong c ) pure nothrow @nogc @trusted {
ulong a = 0x0102030405060708, b = 0x8000700060005000;
writefln( "%016x \t=addr(c), 3rd arg", &c);
auto r = checkRegsC( a, b, c );
"%016x %016x".writefln( r.r1, r.r2 );
r = checkRegsD( a, b, c );
"%016x %016x".writefln( r.r1, r.r2 );