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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW
                 CC|                            |hubicka at gcc dot gnu.org

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
We perform jump target alignment to optimize frontend (instruction decoding).
The reporter is correct that if the jump target only contains an unconditional
control transfer elsewhere such alignment is moot unless this jump itself
crosses an instruction fetch boundary.

  a0:   89 50 fc                mov    %edx,-0x4(%rax)
  a3:   8b 11                   mov    (%rcx),%edx
  a5:   48 83 c1 04             add    $0x4,%rcx
  a9:   89 10                   mov    %edx,(%rax)
  ab:   48 83 c0 04             add    $0x4,%rax
  af:   eb 94                   jmp    45 <duff+0x45>
  b1:   0f 1f 80 00 00 00 00    nopl   0x0(%rax)
  b8:   c3                      ret
  b9:   0f 1f 80 00 00 00 00    nopl   0x0(%rax)
  c0:   48 89 cf                mov    %rcx,%rdi

so that doesn't seem to be the case here (in fact since 'ret' is a single
byte it never crosses a fetch boundary but other uncond jumps might).

Reply via email to