------- Comment #4 from dominiq at lps dot ens dot fr 2010-04-10 16:42 ------- Created an attachment (id=20357) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20357&action=view) Miscompiled assembly for subroutine S3302
The diff between the working (-) and miscompiled (+) assembly files is --- s33022_w.s 2010-04-10 13:04:09.000000000 +0200 +++ s33022_n.s 2010-04-10 13:04:31.000000000 +0200 @@ -311,13 +311,13 @@ L28: movsd -144(%rbp), %xmm3 mulsd %xmm9, %xmm1 mulsd %xmm4, %xmm3 - subsd -144(%rbp), %xmm14 + subsd -136(%rbp), %xmm14 movsd -136(%rbp), %xmm9 divsd %xmm10, %xmm1 subsd %xmm2, %xmm9 addsd LC18(%rip), %xmm14 movsd %xmm9, -104(%rbp) - subsd -136(%rbp), %xmm14 + subsd -144(%rbp), %xmm14 movsd (%r8), %xmm10 movsd %xmm10, -216(%rbp) mulsd %xmm7, %xmm10 @@ -454,16 +454,13 @@ L28: movsd -88(%rbp), %xmm6 mulsd %xmm4, %xmm3 mulsd %xmm2, %xmm6 - xorpd LC12(%rip), %xmm12 + mulsd -232(%rbp), %xmm15 addsd -200(%rbp), %xmm14 mulsd %xmm9, %xmm3 - mulsd -232(%rbp), %xmm15 - subsd -216(%rbp), %xmm12 movsd %xmm3, -456(%rbp) movapd %xmm13, %xmm3 mulsd %xmm1, %xmm14 addsd %xmm13, %xmm3 - mulsd -80(%rbp), %xmm12 addsd %xmm6, %xmm3 movsd -120(%rbp), %xmm6 addsd %xmm6, %xmm6 @@ -495,13 +492,17 @@ L28: mulsd -112(%rbp), %xmm14 mulsd %xmm0, %xmm3 addsd %xmm3, %xmm15 - movsd -144(%rbp), %xmm3 - subsd -120(%rbp), %xmm3 - subsd %xmm12, %xmm15 + movsd -216(%rbp), %xmm3 + xorpd LC12(%rip), %xmm3 + subsd %xmm12, %xmm3 movsd -136(%rbp), %xmm12 subsd -120(%rbp), %xmm12 - mulsd %xmm8, %xmm3 + mulsd -80(%rbp), %xmm3 mulsd -96(%rbp), %xmm12 + subsd %xmm3, %xmm15 + movsd -144(%rbp), %xmm3 + subsd -120(%rbp), %xmm3 + mulsd %xmm8, %xmm3 addsd %xmm12, %xmm3 movapd %xmm4, %xmm12 mulsd %xmm0, %xmm12 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43716