http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55142
--- Comment #26 from Uros Bizjak <ubizjak at gmail dot com> 2012-11-08 16:34:27 UTC --- > I think the most robust solution would be to always zero-extend the addresses > for -mx32, i.e. output > movl %ecx, -1073743664(%eax) > even if the address is a PLUS in DImode. Otherwise, we're left with > kludges... Also, please note that the failure is with -maddress-mode=long. This flag was introduced with the intention to get rid of as many 0x67 address size prefixes as possible. The problem is even listed at the bottom of x32-abi project page [1]. [1] https://sites.google.com/site/x32abi/