I can't wrap my brain around how the calls in dmd's x64 output code work.
According to http://siyobik.info/main/reference/instruction/CALL it is a
call relative to the next instruction (RIP).

And objdump prints just that.

0000000000000000 <_D4test3fooFZi>:
   0:   48 c7 c0 01 00 00 00    mov    rax,0x1

0000000000000010 <_Dmain>:
  10:   e8 00 00 00 00     call   15 <_Dmain+0x5>
  15:   31 c0              xor    eax,eax
  17:   c3                 ret

While obj2asm prints:

_D4test3fooFZi:
                mov     RAX,1

_Dmain:
                call      _D4test3fooFZi@PC32
                xor     EAX,EAX
                ret

Reply via email to