[FFmpeg-trac] #3540(undetermined:new): The asm inline code in function libavcodec/dirac_arith.h:dirac_get_arith_bit with PIC and stack-check build options

FFmpeg trac at avcodec.org
Wed Apr 9 13:04:57 CEST 2014


#3540: The asm inline code in function
libavcodec/dirac_arith.h:dirac_get_arith_bit with PIC and stack-check build
options
----------------------------------+----------------------------------------
             Reporter:  alucowie  |                    Owner:
                 Type:  defect    |                   Status:  new
             Priority:  normal    |                Component:  undetermined
              Version:  1.2.6     |               Resolution:
             Keywords:            |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+----------------------------------------

Comment (by alucowie):

 Then the macro condition is false (either HAVE_FAST_CMOV or
 HAVE_INLINE_ASM is false), otherwise you must have:
 {{{
      a11:       39 fd                   cmp    %edi,%ebp
      a13:       0f 93 c1                setae  %cl
      a16:       0f 42 c6                cmovb  %esi,%eax
      a19:       0f 42 d7                cmovb  %edi,%edx
 }}}
 With -fomit-frame-pointer instead of -fstack-check, or:
 {{{
      a3c:       39 ca                   cmp    %ecx,%edx
      a3e:       0f 93 c3                setae  %bl
      a41:       0f 42 f8                cmovb  %eax,%edi
      a44:       0f 42 f1                cmovb  %ecx,%esi
 }}}
 Without PIC.
 In my case HAVE_FAST_CMOV and HAVE_INLINE_ASM are true then I got the
 problem and the fix on HAVE_6REGS select the C code instead of asm.

 -02 should be faster but I haven't check the fact and it is the same
 problem with or without.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/3540#comment:7>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list