.file "20030225-1.c" .local blk.0 .comm blk.0,4,2 .local i.1 .comm i.1,4,2 .local X0.2 .comm X0.2,4,2 .local X1.3 .comm X1.3,4,2 .local X2.4 .comm X2.4,4,2 .local X3.5 .comm X3.5,4,2 .local X4.6 .comm X4.6,4,2 .local X5.7 .comm X5.7,4,2 .local X6.8 .comm X6.8,4,2 .local X7.9 .comm X7.9,4,2 .local X8.10 .comm X8.10,4,2 .text .align 2 .globl idct_int32 .type idct_int32, @function idct_int32: link.w %a6,#-8 movm.l #0x3f3c,-(%sp) clr.l -4(%a6) clr.l (i.1) move.l iclp,%a5 move.l (X0.2),-8(%a6) move.l X8.10,%a4 move.l 8(%a6),%a2 .align 2 .L7: move.w 64(%a2),%d7 ext.l %d7 lsl.l #8,%d7 move.w 96(%a2),%d3 ext.l %d3 move.l %d7,%d0 or.l %d3,%d0 move.w 32(%a2),%d6 ext.l %d6 or.l %d6,%d0 move.w 16(%a2),%a3 move.l %a3,%d1 or.l %d1,%d0 move.w 112(%a2),%d5 ext.l %d5 or.l %d5,%d0 move.w 80(%a2),%d4 ext.l %d4 or.l %d4,%d0 move.w 48(%a2),%d2 ext.l %d2 or.l %d2,%d0 jbne .L6 move.w (%a2),%a0 moveq.l #32,%d0 add.l %a0,%d0 asr.l #6,%d0 move.w (%a5,%d0.l*2),%d0 move.w %d0,112(%a2) move.w %d0,96(%a2) move.w %d0,80(%a2) move.w %d0,64(%a2) move.w %d0,48(%a2) move.w %d0,32(%a2) move.w %d0,16(%a2) move.w %d0,(%a2) .L4: addq.l #1,-4(%a6) addq.l #2,%a2 move.l -4(%a6),%d0 moveq.l #7,%d1 cmp.l %d0,%d1 jbge .L7 jbra .L11 .align 2 .L6: move.w (%a2),%d0 ext.l %d0 lsl.l #8,%d0 add.l #8192,%d0 move.l %d0,-8(%a6) move.l %a3,%d1 add.l %d5,%d1 move.l %d1,%d0 lsl.l #3,%d0 sub.l %d1,%d0 lsl.l #4,%d0 move.l %d0,%a0 add.l %d1,%a0 lea 4(%a0,%a0.l*4),%a4 lea (%a3,%a3.l*8),%a0 move.l %a0,%d0 lsl.l #3,%d0 sub.l %a3,%d0 lea (%a3,%d0.l*8),%a0 lea (%a4,%a0.l*4),%a3 move.l %a3,%d0 asr.l #3,%d0 move.l %d0,%a3 move.l %d5,%a0 lea (%a0,%d5.l*8),%a0 move.l %a0,%d1 lsl.l #3,%d1 sub.l %d5,%d1 move.l %d1,%d0 lsl.l #2,%d0 sub.l %d1,%d0 lsl.l #3,%d0 sub.l %d5,%d0 add.l %d0,%d0 move.l %a4,%d5 sub.l %d0,%d5 asr.l #3,%d5 move.l %d4,%a0 add.l %d2,%a0 lea (%a0,%a0.l*4),%a1 move.l %a1,%d0 lsl.l #4,%d0 sub.l %a1,%d0 lea (%a0,%d0.l*4),%a0 move.l %a0,%d0 lsl.l #3,%d0 move.l %d0,%a4 addq.l #4,%a4 move.l %d4,%a1 lea (%a1,%d4.l*2),%a0 lea (%a1,%a0.l*8),%a1 move.l %a1,%d0 lsl.l #5,%d0 sub.l %d4,%d0 move.l %a4,%d4 sub.l %d0,%d4 asr.l #3,%d4 move.l %d2,%d0 lsl.l #6,%d0 sub.l %d2,%d0 lsl.l #2,%d0 sub.l %d2,%d0 lsl.l #4,%d0 add.l %d2,%d0 move.l %a4,%d2 sub.l %d0,%d2 asr.l #3,%d2 move.l -8(%a6),%a4 add.l %d7,%a4 sub.l %d7,-8(%a6) move.l %d6,%a0 add.l %d3,%a0 move.l %a0,%d0 lsl.l #4,%d0 add.l %a0,%d0 lea (%a0,%d0.l*4),%a1 lea (%a0,%a1.l*4),%a1 move.l %a1,%d0 lsl.l #2,%d0 move.l %d0,%d7 addq.l #4,%d7 move.l %d3,%d0 lsl.l #4,%d0 sub.l %d3,%d0 lsl.l #2,%d0 sub.l %d3,%d0 move.l %d3,%a0 lea (%a0,%d0.l*8),%a0 move.l %a0,%d0 lsl.l #3,%d0 move.l %d7,%d3 sub.l %d0,%d3 asr.l #3,%d3 move.l %d6,%a1 lea (%a1,%d6.l*2),%a1 move.l %a1,%d0 lsl.l #4,%d0 add.l %d6,%d0 lsl.l #5,%d0 move.l %d7,%d6 add.l %d0,%d6 asr.l #3,%d6 move.l %a3,%d7 add.l %d4,%d7 sub.l %d4,%a3 move.l %d5,%d4 add.l %d2,%d4 sub.l %d2,%d5 move.l %a4,%d2 add.l %d6,%d2 sub.l %d6,%a4 move.l -8(%a6),%d6 add.l %d3,%d6 sub.l %d3,-8(%a6) lea (%a3,%d5.l),%a0 lea (%a0,%a0.l*2),%a1 move.l %a1,%d0 lsl.l #4,%d0 sub.l %a1,%d0 lea 128(%a0,%d0.l*4),%a0 move.l %a0,%d3 asr.l #8,%d3 move.l %a3,%a0 sub.l %d5,%a0 lea (%a0,%a0.l*2),%a1 move.l %a1,%d0 lsl.l #4,%d0 sub.l %a1,%d0 lea 128(%a0,%d0.l*4),%a3 move.l %a3,%d0 asr.l #8,%d0 move.l %d0,%a3 move.l %d2,%d0 add.l %d7,%d0 moveq.l #14,%d1 asr.l %d1,%d0 move.w (%a5,%d0.l*2),(%a2) move.l %d6,%d0 add.l %d3,%d0 asr.l %d1,%d0 move.w (%a5,%d0.l*2),16(%a2) move.l -8(%a6),%d0 add.l %a3,%d0 asr.l %d1,%d0 move.w (%a5,%d0.l*2),32(%a2) move.l %a4,%d0 add.l %d4,%d0 asr.l %d1,%d0 move.w (%a5,%d0.l*2),48(%a2) move.l %a4,%d0 sub.l %d4,%d0 asr.l %d1,%d0 move.w (%a5,%d0.l*2),64(%a2) move.l -8(%a6),%d0 sub.l %a3,%d0 asr.l %d1,%d0 move.w (%a5,%d0.l*2),80(%a2) move.l %d6,%d0 sub.l %d3,%d0 asr.l %d1,%d0 move.w (%a5,%d0.l*2),96(%a2) move.l %d2,%d0 sub.l %d7,%d0 asr.l %d1,%d0 move.w (%a5,%d0.l*2),112(%a2) jbra .L4 .align 2 .L11: move.l %d0,(i.1) move.l %a4,X8.10 move.l -8(%a6),(X0.2) move.l %d2,(X7.9) move.l %d4,(X6.8) move.l %d5,(X5.7) move.l %a3,(X4.6) move.l %d6,(X3.5) move.l %d3,(X2.4) move.l %d7,(X1.3) moveq.l #14,%d0 add.l 8(%a6),%d0 move.l %d0,(blk.0) movm.l (%sp)+,#0x3cfc unlk %a6 rts .size idct_int32, .-idct_int32 .align 2 .globl main .type main, @function main: link.w %a6,#-128 lea (-128,%a6),%a0 moveq.l #63,%d0 .L17: move.w #1,(%a0)+ subq.l #1,%d0 jbpl .L17 move.l #iclip+1024,iclp move.l #-512,%d0 lea iclip,%a0 .align 2 .L25: move.w #-256,%d1 cmp.l #-256,%d0 jblt .L23 move.l %d0,%d1 cmp.l #255,%d0 jble .L23 moveq.l #0,%d1 not.b %d1 .align 2 .L23: move.w %d1,(%a0)+ addq.l #1,%d0 cmp.l #511,%d0 jble .L25 pea -128(%a6) jbsr idct_int32 clr.l -(%sp) jbsr exit nop .size main, .-main .local iclip .comm iclip,2048,2 .local iclp .comm iclp,4,2 .ident "GCC: (GNU) 3.3.2"