[Bug d/94609] FAIL: gdc.dg/runnable.d
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Apr 15 20:25:03 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94609
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
LP64 has:
(gdb) disass _D8runnable6test52FZv
Dump of assembler code for function _D8runnable6test52FZv:
0x000000000040943a <+0>: push %rbp
0x000000000040943b <+1>: mov %rsp,%rbp
0x000000000040943e <+4>: push %r13
0x0000000000409440 <+6>: push %r12
0x0000000000409442 <+8>: push %rbx
0x0000000000409443 <+9>: sub $0x28,%rsp
0x0000000000409447 <+13>: lea -0x40(%rbp),%rax
0x000000000040944b <+17>: mov %rax,%rdi
0x000000000040944e <+20>: callq 0x409326
<_D8runnable7test52aFZS8runnable7test52aFZ6Scoped>
The argument is passed in RDI. But x32 has
Dump of assembler code for function _D8runnable6test52FZv:
0x00407a33 <+0>: push %rbp
0x00407a34 <+1>: mov %esp,%ebp
0x00407a36 <+3>: push %rbx
0x00407a37 <+4>: sub $0x18,%esp
0x00407a3a <+7>: callq 0x4078f0
<_D8runnable7test52aFZS8runnable7test52aFZ6Scoped>
RDI/EDI isn't used to pass argument. Is this done on purpose? Where does
D frontend decide how to pass argument?
More information about the Gcc-bugs
mailing list