void swap(long *xplong *yp)
{
    long t0 = *xp;
    long t1 = *yp;
    *xp = t1;
    *yp = t0;
}

c 코드


    .file    "sum.c"
    .text
    .globl    swap
    .type    swap, @function
swap:
.LFB0:
    .cfi_startproc
    movq    (%rdi), %rax
    movq    (%rsi), %rdx
    movq    %rdx, (%rdi)
    movq    %rax, (%rsi)
    ret
    .cfi_endproc
.LFE0:
    .size    swap, .-swap
    .ident    "GCC: (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0"
    .section    .note.GNU-stack,"",@progbits

결과


%rax를 쓸지 %rdx를 쓸지는 어떻게 정해지는 거임?