[Bug target/70750] [6/7 Regression] Load and call no longer combined for indirect calls on x86
david.abdurachmanov at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Apr 21 11:06:00 GMT 2016
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.
More information about the Gcc-bugs
mailing list