On Thu, Mar 22, 2012 at 06:53:14AM -0700, Ronald S. Bultje wrote:
> Hi,
> 
> 2012/3/20 Måns Rullgård <[email protected]>:
> > "Ronald S. Bultje" <[email protected]> writes:
> >
> >> Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
> >> ---
> >>  libavcodec/x86/cabac.h     |   15 ++++++++++-----
> >>  libavcodec/x86/h264_i386.h |   18 ++++++++++++------
> >>  2 files changed, 22 insertions(+), 11 deletions(-)
> >>
> >> diff --git a/libavcodec/x86/cabac.h b/libavcodec/x86/cabac.h
> >> index 78d8af7..082395c 100644
> >> --- a/libavcodec/x86/cabac.h
> >> +++ b/libavcodec/x86/cabac.h
> >> @@ -51,7 +51,7 @@
> >>          "xor    "tmp"       , "ret"     \n\t"
> >>  #endif /* HAVE_FAST_CMOV */
> >>
> >> -#define BRANCHLESS_GET_CABAC(ret, statep, low, lowword, range, tmp, 
> >> tmpbyte, byte) \
> >> +#define BRANCHLESS_GET_CABAC(ret, statep, low, lowword, range, tmp, 
> >> tmpbyte, byte, end) \
> >>          "movzbl "statep"    , "ret"                                 \n\t"\
> >>          "mov    "range"     , "tmp"                                 \n\t"\
> >>          "and    $0xC0       , "range"                               \n\t"\
> >> @@ -64,9 +64,12 @@
> >>          "shl    %%cl        , "low"                                 \n\t"\
> >>          "mov    "tmpbyte"   , "statep"                              \n\t"\
> >>          "test   "lowword"   , "lowword"                             \n\t"\
> >> -        " jnz   1f                                                  \n\t"\
> >> +        " jnz   2f                                                  \n\t"\
> >
> > Why do you renumber these?  Number labels don't need to be in ascending
> > order or anything like that.
> 
> Because it's cleaner.
> 
> >>          "mov    "byte"      , %%"REG_c"                             \n\t"\
> >> +        "cmp    "end"       , %%"REG_c"                             \n\t"\
> >> +        "jge    1f                                                  \n\t"\
> >>          "add"OPSIZE" $2     , "byte"                                \n\t"\
> >> +        "1:                                                         \n\t"\
> >
> > Is there no way of doing this with cmov instead of branching?
> 
> No. If you have suggestions, I'm naturally very open to them.
> 
> Any other review? Again, this patch + other cabac ones depending on it
> has been sitting here for days with no review, no progress and no
> plan.

Can we get at least several compilers and compiler version output for the
functions that use it? It's inline assembly, so compiler output for these
may vary greatly and fail register allocation for some other GCC version, 
for instance. When we have it, then we can discuss it further.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to