.sect .text ! Compare sets a, b. ! Stack: ( b a -- ) ! With r3 = size of each set ! Yields r3 = 0 if equal, nonzero if not equal .define .cms .cms: mr r4, sp ! r4 = ptr to set a add r5, sp, r3 ! r5 = ptr to set b mr r6, r3 ! r6 = size srwi r3, r3, 2 mtspr ctr, r3 ! ctr = size / 4 1: lwz r7, 0(r4) lwz r8, 0(r5) cmpw cr0, r7, r8 ! compare words in sets addi r4, r4, 4 addi r5, r5, 4 bne cr0, 2f ! branch if not equal bdnz 1b ! loop ctr times addi r3, r0, 0 ! equal: return 0 b 3f 2: addi r3, r0, 1 ! not equal: return 1 3: slwi r6, r6, 1 ! r6 = size * 2 add sp, sp, r6 ! remove sets from stack blr