comparison cabac.h @ 4047:61a4e7218a45 libavcodec

reordering instructions a little in decode_significance_x86() -> 2 instructions less / 1% faster decode_residual on P3
author michael
date Fri, 20 Oct 2006 00:51:04 +0000
parents 8bbc695c9603
children bf6791303fa0
comparison
equal deleted inserted replaced
4046:8bbc695c9603 4047:61a4e7218a45
682 "movl "RANGE "(%3), %%esi \n\t" 682 "movl "RANGE "(%3), %%esi \n\t"
683 "movl "LOW "(%3), %%ebx \n\t" 683 "movl "LOW "(%3), %%ebx \n\t"
684 684
685 "2: \n\t" 685 "2: \n\t"
686 686
687 BRANCHLESS_GET_CABAC("%0", "%3", "(%1)", "%%ebx", "%%bx", "%%esi", "%%edx", "%%dl") 687 BRANCHLESS_GET_CABAC("%%edx", "%3", "(%1)", "%%ebx", "%%bx", "%%esi", "%%eax", "%%al")
688 688
689 "test $1, %0 \n\t" 689 "test $1, %%edx \n\t"
690 " jz 3f \n\t" 690 " jz 3f \n\t"
691
692 BRANCHLESS_GET_CABAC("%%edx", "%3", "61(%1)", "%%ebx", "%%bx", "%%esi", "%%eax", "%%al")
691 693
692 "movl %2, %%eax \n\t" 694 "movl %2, %%eax \n\t"
693 "movl %4, %%ecx \n\t" 695 "movl %4, %%ecx \n\t"
694 "addl %1, %%ecx \n\t" 696 "addl %1, %%ecx \n\t"
695 "movl %%ecx, (%%eax) \n\t" 697 "movl %%ecx, (%%eax) \n\t"
696 "addl $4, %%eax \n\t" 698 "addl $4, %%eax \n\t"
697 "movl %%eax, %2 \n\t" 699 "movl %%eax, %2 \n\t"
698 700
699 BRANCHLESS_GET_CABAC("%0", "%3", "61(%1)", "%%ebx", "%%bx", "%%esi", "%%edx", "%%dl") 701 "test $1, %%edx \n\t"
700
701 "test $1, %%eax \n\t"
702 " jnz 4f \n\t" 702 " jnz 4f \n\t"
703 703
704 "3: \n\t" 704 "3: \n\t"
705 "addl $1, %1 \n\t" 705 "addl $1, %1 \n\t"
706 "cmpl %5, %1 \n\t" 706 "cmpl %5, %1 \n\t"
708 "movl %2, %%eax \n\t" 708 "movl %2, %%eax \n\t"
709 "movl %4, %%ecx \n\t" 709 "movl %4, %%ecx \n\t"
710 "addl %1, %%ecx \n\t" 710 "addl %1, %%ecx \n\t"
711 "movl %%ecx, (%%eax) \n\t" 711 "movl %%ecx, (%%eax) \n\t"
712 "addl $4, %%eax \n\t" 712 "addl $4, %%eax \n\t"
713 "movl %%eax, %2 \n\t"
714 "4: \n\t" 713 "4: \n\t"
715 "movl %2, %%eax \n\t"
716 "addl %6, %%eax \n\t" 714 "addl %6, %%eax \n\t"
717 "shr $2, %%eax \n\t" 715 "shr $2, %%eax \n\t"
718 716
719 "movl %%esi, "RANGE "(%3) \n\t" 717 "movl %%esi, "RANGE "(%3) \n\t"
720 "movl %%ebx, "LOW "(%3) \n\t" 718 "movl %%ebx, "LOW "(%3) \n\t"