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

David Abdurachmanov <david.abdurachmanov at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |david.abdurachmanov at gmail 
dot c
                   |                            |om

--- Comment #1 from David Abdurachmanov <david.abdurachmanov at gmail dot com> 
---
I have noticed this while comparing assembly generated by GCC 5.3.0 and GCC
6.0.1.

Examples (diff -u 5.3.0 6.0.1)

  7 -       ff 50 18                callq  *0x18(%rax)
  8 +       48 8b 40 18             mov    0x18(%rax),%rax
  9 +       ff d0                   callq  *%rax

 41 -       ff 50 08                callq  *0x8(%rax)
 42 -       4c 8b 7b f8             mov    -0x8(%rbx),%r15
 43 +       48 8b 40 08             mov    0x8(%rax),%rax
 44 +       ff d0                   callq  *%rax
 45 +       49 8b 5f f8             mov    -0x8(%r15),%rbx

 49 -       ff 50 08                callq  *0x8(%rax)
 50 +       48 8b 40 08             mov    0x8(%rax),%rax
 51 +       ff d0                   callq  *%rax

Seems that GCC 6.0.1 is no more combining mov + callq. I have not checked if it
was intentional change or not in GCC.

Reply via email to