******************************************************************************* * * * COUNT BITS * * 08/01/11 (dkc) * * * * This C64 subroutine counts bits. The calling sequence of the subroutine * * is; * * * * input data-> a4 * * * ******************************************************************************* .global _bitcnt .text _bitcnt: bitc4.m1 a4, a4 ; count bits b.s2 b3 ; return
swap2.l1 a4, a5 ; C:D:A:B add.s1 a4, a5, a7 ; A+C:B+D:C+A:D+B || swap4.l1 a5, a5 ; D:C:B:A add.s1 a5, a7, a4 ; A+C+D:B+D+C:C+A+B:D+B+A || swap4.l1 a4, a6 ; B:A:D:C add.l1 a4, a6, a4 ; A+C+D+B:B+D+C+A:C+A+B+D:D+B+A+C shru.s1 a4, 24, a4 ; A+C+D+B .end