Then it look like a dmd backend bug. Can you post the generated assembly ?

000000000043050c <_Dmain>:
   43050c:       push   %rbp
   43050d:       mov    %rsp,%rbp
   430510:       sub    $0x40,%rsp
   430514:       movabs $0x3ff0000000000000,%rax
   43051b:
   43051e:       mov    %rax,-0x40(%rbp)
   430522:       movsd  -0x40(%rbp),%xmm0
   430527:       rex.W movsd %xmm0,-0x30(%rbp)
   43052d:       xor    %edx,%edx
   43052f:       mov    %rax,-0x10(%rbp)
   430533:       mov    %rdx,-0x8(%rbp)
   430537:       mov    %rax,-0x28(%rbp)
   43053b:       mov    %rdx,-0x20(%rbp)
   43053f:       mov    0x28022(%rip),%rdx
   430546:       mov    0x28013(%rip),%rsi
   43054d:       mov    -0x28(%rbp),%rdi
   430551:       callq  430874 <void
std.stdio.writefln!(immutable(char)[],
ulong).writefln(immutable(char)[], ulong)>
   430556:       xor    %eax,%eax
   430558:       leaveq
   430559:       retq

Reply via email to