--- cbp_ppc.s 2002/03/22 12:24:07 1.4 +++ cbp_ppc.s 2002/03/22 13:39:01 1.7 @@ -15,13 +15,13 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # -# $Id: cbp_ppc.s,v 1.4 2002/03/22 12:24:07 canard Exp $ +# $Id: cbp_ppc.s,v 1.7 2002/03/22 13:39:01 canard Exp $ # $Source: /home/xvid/cvs/cvs-server-root/xvid/xvidcore/src/bitstream/ppc_asm/Attic/cbp_ppc.s,v $ -# $Date: 2002/03/22 12:24:07 $ +# $Date: 2002/03/22 13:39:01 $ # $Author: canard $ # -# This is the PPC ASM code I write. So I might do nasty things. -# Please send any comments to guillaume@morinfr.org +# This is my first PPC ASM attempt. So I might do nasty things. +# Please send any comments to # Returns a field of bits that indicates non zero ac blocks @@ -60,33 +60,24 @@ # r3 contains the result, therefore we set it to 0 xor 3,3,3 .loop: - # r7 is the loop2 counter (columns), FIXME: use CTR - li 7,14 + # CTR is the loop2 counter + li 4,15 + mtctr 4 # r6 is coeff pointer for this line mr 6,9 .loop2: # coeffs is a matrix of 16 bits cells - lha 4,2(6) - lha 5,4(6) - or 4,5,4 - lha 5,6(6) - or 4,5,4 - lha 5,8(6) + lwz 4,2(6) + lwz 5,6(6) # or. updates CR0 or. 4,5,4 # testing bit 2 (is zero) of CR0 bf 2,.cbp addi 6,6,8 - # subic. updates CR0 - subic. 7,7,1 - # testing bit 0 (is negative) of CR0 - bt 0,.lastcoeffs - b .loop2 -.lastcoeffs: - lha 4,2(6) - lha 5,4(6) - or 4,5,4 - lha 5,6(6) + 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