/* y multiplication */ fmov.s @r0,fr0 /* 0 */ fmov.s @(r0,r1),fr1 /* 1 */ fmov.s @(r0,r2),fr2 /* 2 */ fldi0 fr3 fipr fv8,fv0 fmov.s @(r0,r5),fr4 /* 1280 */ fmov.s @(r0,r6),fr5 /* 1281 */ fmov.s @(r0,r7),fr6 /* 1282 */ fldi0 fr7 fipr fv12,fv4 fadd fr3,fr7 fmul fr7,fr7 /* save fr7 in FPUL */ flds fr7,FPUL /* x multiplication */ /* transpose and load before → fr0, fr1, fr2, _, , , , , fr4, fr5, fr6, _, after → fr0, , fr4, _, fr1, , fr5, _, fr2, , fr6, _, */ /* exchange fr4/fr2 */ fmov fr4,fr3 fmov fr2,fr4 fmov fr3,fr2 /* load fr1,fr5 */ fmov.s @(r0,r3),fr1 /* 640 */ fldi0 fr3 fipr fv8,fv0 fmov.s @(r0,r4),fr5 /* 642 */ fldi0 fr7 fipr fv12,fv4 fadd fr3,fr7 fmul fr7,fr7 /* restore FPUL from y multiplication */ fsts FPUL,fr3 fadd fr3,fr7 fmov dr0,xd0 /* load 100.f constant */ fcmp/gt fr0,fr7 movt r9 add #-1,r9 add #4,r0 /* next pixel */