Mercurial > libavcodec.hg
comparison cabac.h @ 3996:c4ff7d570f19 libavcodec
moving lps state transition code a little up in the branched asm code (1% faster on P3)
author | michael |
---|---|
date | Wed, 11 Oct 2006 16:39:50 +0000 |
parents | b00c06477dff |
children | 6cbad3675632 |
comparison
equal
deleted
inserted
replaced
3995:b00c06477dff | 3996:c4ff7d570f19 |
---|---|
403 "1: \n\t" | 403 "1: \n\t" |
404 //eax:state ebx:low, edx:range, esi:RangeLPS | 404 //eax:state ebx:low, edx:range, esi:RangeLPS |
405 "subl %%edx, %%ebx \n\t" | 405 "subl %%edx, %%ebx \n\t" |
406 "movl %%esi, %%edx \n\t" | 406 "movl %%esi, %%edx \n\t" |
407 "shr $19, %%esi \n\t" | 407 "shr $19, %%esi \n\t" |
408 "movzbl "MANGLE(ff_h264_lps_state)"(%%eax), %%ecx \n\t" | |
409 "movb %%cl, (%1) \n\t" | |
408 "movzbl " MANGLE(ff_h264_norm_shift) "(%%esi), %%ecx \n\t" | 410 "movzbl " MANGLE(ff_h264_norm_shift) "(%%esi), %%ecx \n\t" |
409 "shll %%cl, %%ebx \n\t" | 411 "shll %%cl, %%ebx \n\t" |
410 "shll %%cl, %%edx \n\t" | 412 "shll %%cl, %%edx \n\t" |
411 "movzbl "MANGLE(ff_h264_lps_state)"(%%eax), %%ecx \n\t" | |
412 "movb %%cl, (%1) \n\t" | |
413 "addl $1, %%eax \n\t" | 413 "addl $1, %%eax \n\t" |
414 "test %%bx, %%bx \n\t" | 414 "test %%bx, %%bx \n\t" |
415 " jnz 2f \n\t" | 415 " jnz 2f \n\t" |
416 | 416 |
417 "movl "BYTE "(%2), %%ecx \n\t" | 417 "movl "BYTE "(%2), %%ecx \n\t" |