http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52530
--- Comment #1 from Uros Bizjak <ubizjak at gmail dot com> 2012-03-08 13:49:52 UTC --- Ouch. Before the change, we always used "q" modifier for addresses, only in two special cases we emitted "l". This "q" modifier forced DImode address even for SImode operands, avoiding addr32 prefixes. The change - while correct - cancelled this optimization. So, please revert this patch ASAP. Also, Sun is buggy in the way addr32 prefix is handled.