http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56098



Mikael Pettersson <mikpe at it dot uu.se> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

                 CC|                            |mikpe at it dot uu.se



--- Comment #1 from Mikael Pettersson <mikpe at it dot uu.se> 2013-01-25 
08:42:56 UTC ---

gcc 3.3.6 to 4.2.4 generate:



problem:

.LFB2:

        movq    ptr(%rip), %rax

        testl   %edi, %edi

        movl    $1, (%rax)

        je      .L4

        movl    $2, (%rax)

.L4:

        rep ; ret



which looks Ok to me.  From 4.3.6 up to 4.7.2 we get the broken code Werner

showed.  3.2.3 generates different broken code:



problem:

.LFB1:

        xorl    %eax, %eax

        movq    ptr(%rip), %rdx

        testl   %edi, %edi

        setne   %al

        movl    $1, (%rdx)

        incl    %eax

        movl    %eax, (%rdx)

        ret

Reply via email to