/* fv0 fv4 fv8 fv12 */ .global _sobel_y _sobel_y: __setup: mova _const_100f,r0 mov r0,r3 mov r4,r0 mov r5,r7 /* r5 saved as r7 */ fldi1 fr8 /* 1.0 */ fldi1 fr9 /* 2.0 */ fldi1 fr10 /* 1.0 */ fldi0 fr11 /* 0.0 */ fadd fr9,fr9 fldi1 fr12 fmov fr9,fr13 fldi1 fr14 fldi0 fr15 fneg fr12 fneg fr13 fneg fr14 /* offsets */ mov #(1 * 4),r1 mov #(2 * 4),r2 mov.w _const_640,r4 mov.w _const_644,r5 mov.w _const_648,r6 bra _loop nop .align 4 _const_100f: .float 100 _const_640: .word (640 * 4) _const_644: .word (641 * 4) _const_648: .word (642 * 4) _loop: fmov.s @r0,fr0 fmov.s @(r0,r1),fr1 fmov.s @(r0,r2),fr2 fldi0 fr3 fipr fv8,fv0 fmov.s @(r0,r4),fr4 fmov.s @(r0,r5),fr5 fmov.s @(r0,r6),fr6 fldi0 fr7 fipr fv12,fv4 add #4,r0 fadd fr3,fr7 fmov.s r1,@-r7 rts nop