------- Comment #5 from hjl dot tools at gmail dot com 2010-06-30 21:53 ------- Function get_attribute is miscompiled. The difference is
-- --- /tmp/good.s 2010-06-30 14:36:46.971155015 -0700 +++ /tmp/bad.s 2010-06-30 14:38:49.211031644 -0700 @@ -3966,18 +3966,18 @@ get_attribute: jne .L499 movq 104(%rdi), %rcx movq %rax, %rdi - addq %rdx, %rax + leaq (%rax,%rdx), %rax subq 0(%rbp), %rdi + leaq 2(%rax), %rdx orl $-1, %ebx movq %rdi, 8(%rcx) - leaq 2(%rax), %rdx movq %rdx, 16(%rbp) movzbl (%rax), %eax + movl %esi, %edi sall $8, %eax movzbl -1(%rdx), %ecx orl %eax, %ecx - sall $3, %ecx - leal (%rcx,%rsi), %esi + leal (%rdi,%rcx,8), %esi cmpl %esi, %r13d jb .L381 movslq %ecx, %rcx -- -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44727