https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87627

--- Comment #4 from Rich Felker <bugdal at aerifal dot cx> ---
Thanks, that's helpful!

For 64-bit what I mean is that it emits:

  pushq %r12
  movl %edx, %r12d
  pushq %rbp
  movl %esi, %ebp
  pushq %rbx
  movl %edi, %ebx
  call bar
  movl %r12d, %edx
  movl %ebp, %esi
  movl %ebx, %edi
  popq %rbx
  popq %rbp
  popq %r12
  jmp bah

whereas it would be much more efficient to do:

  pushq %rdx
  pushq %rsi
  pushq %rdi
  call bar
  popq %rdi
  popq %rsi
  popq %rdx
  jmp bah

Reply via email to