http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55142
--- Comment #18 from H.J. Lu <hjl.tools at gmail dot com> 2012-11-02 23:09:19 UTC --- (gdb) disass $pc - 19, +25 Dump of assembler code from 0xf7dddc7a to 0xf7dddc93: 0xf7dddc7a <dl_main+5210>: mov %r8d,%esi 0xf7dddc7d <dl_main+5213>: sub %eax,%esi 0xf7dddc7f <dl_main+5215>: cmp $0xa,%esi 0xf7dddc82 <dl_main+5218>: ja 0xf7ddd431 <dl_main+3089> 0xf7dddc88 <dl_main+5224>: neg %eax 0xf7dddc8a <dl_main+5226>: lea (%rcx,%rax,4),%eax => 0xf7dddc8d <dl_main+5229>: mov %edx,-0x40000300(%rax) End of assembler dump. (gdb) p info $4 = (Elf32_Dyn **) 0xf7ffdc38 (gdb) p/x $rax $5 = 0x37ffe064 (gdb) p/x $rax -0x40000300 $6 = 0xfffffffff7ffdd64 (gdb) -0x40000300(%rax) should be zero-extended from SImode to DImode.