.file "absdiffmmx.cc" .version "01.01" / GNU C++ version egcs-2.90.29 980515 (egcs-1.0.3 release) (i386-redhat-linux) compiled by GNU C version egcs-2.90.29 980515 (egcs-1.0.3 release). / options passed: -g -O3 / options enabled: -fdefer-pop -fcse-follow-jumps -fcse-skip-blocks / -fexpensive-optimizations -fthread-jumps -fstrength-reduce -fpeephole / -fforce-mem -ffunction-cse -finline-functions -finline / -fkeep-static-consts -fcaller-saves -fpcc-struct-return / -frerun-cse-after-loop -frerun-loop-opt -fschedule-insns2 -fexceptions / -fcommon -fverbose-asm -fgnu-linker -fregmove -falias-check / -fargument-alias -m80387 -mhard-float -mno-soft-float -mieee-fp / -mfp-ret-in-387 -mschedule-prologue -mcpu=i386 -march=pentium .stabs "/misc/tboult/html/linux/",100,0,0,.Ltext0 .stabs "absdiffmmx.cc",100,0,0,.Ltext0 .text .Ltext0: .stabs "gcc2_compiled.", 0x3c, 0, 0, 0 .stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0 .stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0 .stabs "long int:t(0,3)=r(0,3);-2147483648;2147483647;",128,0,0,0 .stabs "unsigned int:t(0,4)=r(0,4);0;-1;",128,0,0,0 .stabs "long unsigned int:t(0,5)=r(0,5);0;-1;",128,0,0,0 .stabs "long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;",128,0,0,0 .stabs "long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;",128,0,0,0 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0 .stabs "short unsigned int:t(0,9)=r(0,9);0;65535;",128,0,0,0 .stabs "signed char:t(0,10)=r(0,10);-128;127;",128,0,0,0 .stabs "unsigned char:t(0,11)=r(0,11);0;255;",128,0,0,0 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0 .stabs "double:t(0,13)=r(0,1);8;0;",128,0,0,0 .stabs "long double:t(0,14)=r(0,1);12;0;",128,0,0,0 .stabs "complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;",128,0,0,0 .stabs "complex float:t(0,16)=r(0,16);4;0;",128,0,0,0 .stabs "complex double:t(0,17)=r(0,17);8;0;",128,0,0,0 .stabs "complex long double:t(0,18)=r(0,18);12;0;",128,0,0,0 .stabs "bool:t(0,19)=@s8;-16;",128,0,0,0 .stabs "void:t(0,20)=(0,20)",128,0,0,0 .stabs "__wchar_t:t(0,21)=r(0,21);-2147483648;2147483647;",128,0,0,0 .stabs "__vtbl_ptr_type:t(0,22)=*(0,23)=f(0,1)",128,0,0,0 .align 4 .stabs "absdiffmmx__FPUcPiT0N20Ucii:F(0,20)",36,0,40,absdiffmmx__FPUcPiT0N20Ucii .stabs "outim:p(0,24)=*(0,11)",160,0,40,8 .stabs "row_used:p(0,25)=*(0,1)",160,0,40,12 .stabs "inim:p(0,24)",160,0,40,16 .stabs "refim:p(0,24)",160,0,40,20 .stabs "varim:p(0,24)",160,0,40,24 .stabs "thresh:p(0,1)",160,0,40,28 .stabs "rows:p(0,1)",160,0,40,32 .stabs "cols:p(0,1)",160,0,40,36 .globl absdiffmmx__FPUcPiT0N20Ucii .type absdiffmmx__FPUcPiT0N20Ucii,@function absdiffmmx__FPUcPiT0N20Ucii: .LFB1: .stabn 68,0,40,.LM1-absdiffmmx__FPUcPiT0N20Ucii .LM1: .LBB2: .LBB3: pushl %ebp .LCFI0: movl %esp,%ebp .LCFI1: subl $40,%esp .LCFI2: pushl %edi .LCFI3: pushl %esi .LCFI4: pushl %ebx .LCFI5: movb 28(%ebp),%cl .stabn 68,0,54,.LM2-absdiffmmx__FPUcPiT0N20Ucii .LM2: leal -8(%ebp),%edi movl %edi,-12(%ebp) .stabn 68,0,57,.LM3-absdiffmmx__FPUcPiT0N20Ucii .LM3: movl $7,%edx leal -1(%ebp),%eax .align 4 .L5: .stabn 68,0,58,.LM4-absdiffmmx__FPUcPiT0N20Ucii .LM4: movb %cl,(%eax) .stabn 68,0,59,.LM5-absdiffmmx__FPUcPiT0N20Ucii .LM5: decl %eax decl %edx jns .L5 .LBE3: .stabn 68,0,66,.LM6-absdiffmmx__FPUcPiT0N20Ucii .LM6: .LBB4: #APP movq -8(%ebp),%mm7 #NO_APP .stabn 68,0,68,.LM7-absdiffmmx__FPUcPiT0N20Ucii .LM7: movl $0,-16(%ebp) movl 12(%ebp),%edi movl %edi,-20(%ebp) movl 24(%ebp),%edi movl %edi,-24(%ebp) movl 20(%ebp),%edi movl %edi,-28(%ebp) movl 8(%ebp),%edi movl %edi,-32(%ebp) movl 16(%ebp),%edi movl %edi,-36(%ebp) .align 4 .L7: .LBB5: movl 32(%ebp),%edi cmpl %edi,-16(%ebp) jge .L8 .stabn 68,0,108,.LM8-absdiffmmx__FPUcPiT0N20Ucii .LM8: #APP pxor %mm3, %mm3 # clear row-used flag #NO_APP .stabn 68,0,109,.LM9-absdiffmmx__FPUcPiT0N20Ucii .LM9: movl 36(%ebp),%eax testl %eax,%eax jge .L11 addl $7,%eax .L11: sarl $3,%eax movl %eax,-40(%ebp) .stabn 68,0,110,.LM10-absdiffmmx__FPUcPiT0N20Ucii .LM10: xorl %esi,%esi .stabn 68,0,112,.LM11-absdiffmmx__FPUcPiT0N20Ucii .LM11: cmpl %eax,%esi jge .L13 movl -32(%ebp),%ebx movl -24(%ebp),%ecx movl -36(%ebp),%edx movl -28(%ebp),%eax .align 4 .L14: .stabn 68,0,134,.LM12-absdiffmmx__FPUcPiT0N20Ucii .LM12: #APP movq (%eax),%mm0 # u load ref movq (%edx),%mm1 # u load input movq %mm0,%mm2 # v copy ref movq (%ecx),%mm4 # u load var image data psubusb %mm1, %mm0 # v ref - inp psubusb %mm2, %mm1 # u inp - ref ?subtract stall? paddusb %mm7,%mm4 # v add base threshold to variance por %mm1, %mm0 # u get abs diff (via or) psubusb %mm4,%mm0 # u subtract with saturate thresh movq %mm0,(%ebx) # u store result, por %mm0, %mm3 # v mark row used if it was #NO_APP .stabn 68,0,135,.LM13-absdiffmmx__FPUcPiT0N20Ucii .LM13: addl $8,%ebx addl $8,%ecx addl $8,%edx addl $8,%eax incl %esi cmpl %esi,-40(%ebp) jg .L14 .L13: .stabn 68,0,138,.LM14-absdiffmmx__FPUcPiT0N20Ucii .LM14: .LBB6: #APP movq %mm3,-8(%ebp) #NO_APP .stabn 68,0,140,.LM15-absdiffmmx__FPUcPiT0N20Ucii .LM15: movl -20(%ebp),%edi movl $0,(%edi) .stabn 68,0,141,.LM16-absdiffmmx__FPUcPiT0N20Ucii .LM16: xorl %edx,%edx .align 4 .L19: movl -12(%ebp),%edi movzbl (%edx,%edi),%eax movl -20(%ebp),%edi orl %eax,(%edi) incl %edx cmpl $7,%edx jle .L19 .LBE6: .LBE5: .stabn 68,0,142,.LM17-absdiffmmx__FPUcPiT0N20Ucii .LM17: addl $4,%edi movl %edi,-20(%ebp) movl 36(%ebp),%edi addl %edi,-24(%ebp) addl %edi,-28(%ebp) addl %edi,-32(%ebp) addl %edi,-36(%ebp) incl -16(%ebp) jmp .L7 .align 4 .L8: .LBE4: .stabn 68,0,145,.LM18-absdiffmmx__FPUcPiT0N20Ucii .LM18: .LBE2: #APP emms #NO_APP .stabn 68,0,147,.LM19-absdiffmmx__FPUcPiT0N20Ucii .LM19: leal -52(%ebp),%esp popl %ebx popl %esi popl %edi leave ret .LFE1: .Lfe1: .size absdiffmmx__FPUcPiT0N20Ucii,.Lfe1-absdiffmmx__FPUcPiT0N20Ucii .stabs "thresh:r(0,11)",64,0,40,1 .stabs "mmtemp_d:(0,13)",128,0,53,-8 .stabs "mmtemp:(0,24)",128,0,54,-12 .stabn 192,0,0,.LBB2-absdiffmmx__FPUcPiT0N20Ucii .stabs "i:r(0,1)",64,0,57,2 .stabn 192,0,0,.LBB3-absdiffmmx__FPUcPiT0N20Ucii .stabn 224,0,0,.LBE3-absdiffmmx__FPUcPiT0N20Ucii .stabs "i:(0,1)",128,0,68,-16 .stabn 192,0,0,.LBB4-absdiffmmx__FPUcPiT0N20Ucii .stabs "k:(0,1)",128,0,109,-40 .stabs "index:r(0,1)",64,0,110,6 .stabn 192,0,0,.LBB5-absdiffmmx__FPUcPiT0N20Ucii .stabs "ii:r(0,1)",64,0,141,2 .stabn 192,0,0,.LBB6-absdiffmmx__FPUcPiT0N20Ucii .stabn 224,0,0,.LBE6-absdiffmmx__FPUcPiT0N20Ucii .stabn 224,0,0,.LBE5-absdiffmmx__FPUcPiT0N20Ucii .stabn 224,0,0,.LBE4-absdiffmmx__FPUcPiT0N20Ucii .stabn 224,0,0,.LBE2-absdiffmmx__FPUcPiT0N20Ucii .Lscope0: .stabs "",36,0,0,.Lscope0-absdiffmmx__FPUcPiT0N20Ucii .stabs "",100,0,0,.Letext .Letext: .section .eh_frame,"aw",@progbits __FRAME_BEGIN__: .4byte .LLCIE1 .LSCIE1: .4byte 0x0 .byte 0x1 .byte 0x0 .byte 0x1 .byte 0x7c .byte 0x8 .byte 0xc .byte 0x4 .byte 0x4 .byte 0x88 .byte 0x1 .align 4 .LECIE1: .set .LLCIE1,.LECIE1-.LSCIE1 .4byte .LLFDE1 .LSFDE1: .4byte .LSFDE1-__FRAME_BEGIN__ .4byte .LFB1 .4byte .LFE1-.LFB1 .byte 0x4 .4byte .LCFI0-.LFB1 .byte 0xe .byte 0x8 .byte 0x85 .byte 0x2 .byte 0x4 .4byte .LCFI1-.LCFI0 .byte 0xd .byte 0x5 .byte 0x4 .4byte .LCFI3-.LCFI1 .byte 0x87 .byte 0xd .byte 0x4 .4byte .LCFI4-.LCFI3 .byte 0x86 .byte 0xe .byte 0x4 .4byte .LCFI5-.LCFI4 .byte 0x83 .byte 0xf .align 4 .LEFDE1: .set .LLFDE1,.LEFDE1-.LSFDE1 .ident "GCC: (GNU) egcs-2.90.29 980515 (egcs-1.0.3 release)"