--- trunk/xvidcore/src/bitstream/ppc_asm/cbp_ppc.s 2002/03/27 12:58:29 71 +++ trunk/xvidcore/src/bitstream/ppc_asm/cbp_ppc.s 2002/03/27 15:06:14 72 @@ -15,9 +15,9 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # -# $Id: cbp_ppc.s,v 1.7 2002-03-22 13:39:01 canard Exp $ +# $Id: cbp_ppc.s,v 1.8 2002-03-27 15:06:14 canard Exp $ # $Source: /home/xvid/cvs_copy/cvs-server-root/xvid/xvidcore/src/bitstream/ppc_asm/cbp_ppc.s,v $ -# $Date: 2002-03-22 13:39:01 $ +# $Date: 2002-03-27 15:06:14 $ # $Author: canard $ # # This is my first PPC ASM attempt. So I might do nasty things. @@ -50,6 +50,11 @@ # #} +.data +.skip: + .word 0,-1 +.align 4 + .text .global calc_cbp_ppc calc_cbp_ppc: @@ -58,30 +63,30 @@ # r8 is the loop counter (rows) li 8,5 # r3 contains the result, therefore we set it to 0 - xor 3,3,3 + li 3,0 .loop: # CTR is the loop2 counter - li 4,15 + li 4,16 mtctr 4 # r6 is coeff pointer for this line mr 6,9 + lis 7,.skip@ha + addi 7,7,.skip@l + lwz 7,0(7) .loop2: # coeffs is a matrix of 16 bits cells - lwz 4,2(6) - lwz 5,6(6) + lwz 4,0(6) + and 4,4,7 + li 7,-1 + + lwz 5,4(6) # or. updates CR0 or. 4,5,4 # testing bit 2 (is zero) of CR0 bf 2,.cbp addi 6,6,8 bdnz .loop2 - # latest line coeffs - lwz 4,2(6) - lhz 5,6(6) - # or. updates CR0 - or. 4,5,4 - # testing bit 2 (is zero) of CR0 - bt 2,.newline + b .newline .cbp: li 4,1 slw 4,4,8