------- Comment #39 from bonzini at gnu dot org 2009-01-19 11:04 ------- Looks like a scheduling bug:
-O1 -fforward-propagate has leal -676(%ebp), %edi movl $19, %ecx movl $538976288, %eax rep stosl movw $31096, -603(%ebp) movb $122, -601(%ebp) -O1 -fforward-propagate -fschedule-insns has leal -676(%ebp), %edi movl $19, %ecx movw $31096, -603(%ebp) movl $538976288, %eax rep stosl movb $122, -601(%ebp) and 676+19*4 = 600 so -603(%ebp) is 0x2020 in the bad code, 0x7978 in the good code. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38868