From: Michael B. <M.A...@in...> - 2001-02-04 18:58:09
|
Peter Wang <tj...@al...> writes: > blit.s.opt.gz -- compiled to asm with -funroll-loops There is a bug in generated assembler for blit_from_256. The following code is wrong: .L860: movl 124(%esp),%eax addl %edi,%eax movl 120(%esp),%esi movl 72(%esp),%edx addl (%edx,%eax,4),%esi movl 116(%esp),%eax movl 32(%eax),%eax movl %eax,%ecx movl 116(%esp),%edx #APP call *%ecx #NO_APP movl %eax,%ecx addl 68(%esp),%ecx Before 'call *%ecx' %edx should contain pointer to bitmap and %eax should be line number in bitmap. But %eax is equal to address of write_line function instead. Other calls to bmp_write_line are also inlined incorrectly. Version with function call is incorrect too. Maybe inline assembler was changed in gcc again? I don't use that version of gcc, someone else should report this problem to gcc developers. -- Michael Bukin |