x32: Encode %esp as %rsp to avoid 0x67 prefix
authorH.J. Lu <hjl@gcc.gnu.org>
Sun, 24 Sep 2017 21:37:09 +0000 (14:37 -0700)
committerH.J. Lu <hjl@gcc.gnu.org>
Sun, 24 Sep 2017 21:37:09 +0000 (14:37 -0700)
commit60ba7cd38dff1e64ffcfac04665e32caebcbe6fe
tree76217d8b67ea08f88b76beb8c62b38c2d7d8f795
parentc6c74708b0cc313c90ab5bffc0c2eaa6062827cb
x32: Encode %esp as %rsp to avoid 0x67 prefix

Since the upper 32 bits of stack register are always zero for x32, we
can encode %esp as %rsp to avoid 0x67 prefix in address if there is no
index or base register.

gcc/

PR target/82267
* config/i386/i386.c (ix86_print_operand_address_as): Encode
%esp as %rsp to avoid 0x67 prefix if there is no index or base
register.

gcc/testsuite/

PR target/82267
* gcc.target/i386/pr82267.c: New test.

From-SVN: r253127
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr82267.c [new file with mode: 0644]