;int mv2(ch * a, state * b){return c+*a + b->j;} .section __TEXT,__text,regular,pure_instructions .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 .section __TEXT,__text,regular,pure_instructions .align 2 .globl _mv2 .section __TEXT,__text,regular,pure_instructions .align 2 _mv2: li r6,0 lbz r7,256(r4) subi r3,r3,1 ;out in r3, s in r4, n in r5, i in r6, j in r7 li r5,255 mtctr r5 ; move n to CTR lp: addi r6,r6,1 lbzx r0,r4,r6 ; s[i] add r7,r7,r0 ; j andi. r7,r7,255 lbzx r5,r4,r7 ; s[j] stbx r0,r4,r7 stbx r5,r4,r6 add r2,r0,r5 andi. r2,r2,255 lbzx r2,r4,r2 stbu r2,1(r3) bc 17,0,lp lbz r0,0(r4) ; s[0] add r7,r7,r0 ; j andi. r7,r7,255 lbzx r5,r4,r7 ; s[j] stbx r0,r4,r7 stb r5,0(r4) add r2,r0,r5 andi. r2,r2,255 lbzx r2,r4,r2 stbu r2,1(r3) stb r7,256(r4) blr