https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670

David <gccbugzilla at limegreensocks dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gccbugzilla@limegreensocks.
                   |                            |com

--- Comment #5 from David <gccbugzilla at limegreensocks dot com> ---
What's the status here?  While there was a checkin (r203383 & r203384), this
sample code still does not work correctly (4.9.0 x86_64-w64-mingw32).  The
fall-thru case works, but if the jump inside the asm is taken, eax does not get
set to zero when it clearly should.

My -O2 output is:

00000000004014e0 <foo>:
  4014e0:    test   ecx,ecx
  4014e2:    mov    DWORD PTR [rsp+0x10],edx
  4014e6:    jne    4014f3 <foo+0x13>
  4014e8:    bts    DWORD PTR [rsp+0x10],0x1
  4014ee:    jb     401500 <foo+0x20>
  4014f0:    xor    eax,eax
  4014f2:    ret    
  4014f3:    mov    eax,0xfffffffd
  4014f8:    nop    DWORD PTR [rax+rax*1+0x0]
  401500:    repz ret 
  401502:    data32 data32 data32 data32 nop WORD PTR cs:[rax+rax*1+0x0]

Reply via email to