is this an instance of the 16-byte struct bug
deadalnix
deadalnix at gmail.com
Mon Nov 4 15:07:25 PST 2013
On Monday, 4 November 2013 at 22:56:48 UTC, jerro wrote:
>> 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
What are these ? What are they referering to ?
> 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
This calls writefln, this is not what your code does just above.
Are you sure you are posting the right assembly ? Do you use the
inline flag ?
More information about the Digitalmars-d
mailing list