https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82267
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED Target Milestone|--- |8.0 --- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Peter Cordes from comment #0) > > Even (%rsp) is avoided for some reason, even though -mx32 still uses > push/pop/call/ret which use the full %rsp, so it has to be valid. > > int stackuse(void) { > volatile int foo = 2; > return foo * 3; > } > movl $2, -4(%esp) # 0x67 prefix > movl -4(%esp), %eax # 0x67 prefix > leal (%rax,%rax,2), %eax # no prefixes > ret > GCC 8 generates: movl $2, -4(%rsp) movl -4(%rsp), %eax leal (%rax,%rax,2), %eax ret