.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: -O / options enabled: -fdefer-pop -fthread-jumps -fpeephole -ffunction-cse / -finline -fkeep-static-consts -fpcc-struct-return -fexceptions -fcommon / -fverbose-asm -fgnu-linker -falias-check -fargument-alias -m80387 / -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387 / -mschedule-prologue -mcpu=i386 -march=pentium gcc2_compiled.: .text .align 4 .globl absdiffmmx__FPUcPiT0N20Ucii .type absdiffmmx__FPUcPiT0N20Ucii,@function absdiffmmx__FPUcPiT0N20Ucii: .LFB1: pushl %ebp .LCFI0: movl %esp,%ebp .LCFI1: subl $32,%esp .LCFI2: pushl %edi .LCFI3: pushl %esi .LCFI4: pushl %ebx .LCFI5: movb 28(%ebp),%dl leal -8(%ebp),%ecx movl %ecx,-12(%ebp) xorl %eax,%eax .align 4 .L5: movl -12(%ebp),%ebx movb %dl,(%eax,%ebx) incl %eax cmpl $7,%eax jle .L5 #APP movq -8(%ebp),%mm7 #NO_APP movl $0,-32(%ebp) .align 4 .L7: movl 32(%ebp),%esi cmpl %esi,-32(%ebp) jge .L8 movl 36(%ebp),%eax imull -32(%ebp),%eax movl 16(%ebp),%edi addl %eax,%edi movl %edi,-16(%ebp) movl 8(%ebp),%ecx addl %eax,%ecx movl %ecx,-28(%ebp) movl 20(%ebp),%ebx addl %eax,%ebx movl %ebx,-24(%ebp) addl 24(%ebp),%eax movl %eax,-20(%ebp) movl 36(%ebp),%eax testl %eax,%eax jge .L11 addl $7,%eax .L11: movl %eax,%edx sarl $3,%edx xorl %eax,%eax #APP pxor %mm3, %mm3 # clear row-used flag #NO_APP cmpl %edx,%eax jge .L13 .align 4 .L14: movl -28(%ebp),%esi movl -24(%ebp),%edi movl -16(%ebp),%ecx movl -20(%ebp),%ebx #APP movq (%edi,%eax,8),%mm0 # u load ref movq (%ecx,%eax,8),%mm1 # u load input movq %mm0,%mm2 # v copy ref movq (%ebx,%eax,8),%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,(%esi,%eax,8) # u store result, por %mm0, %mm3 # v mark row used if it was #NO_APP incl %eax cmpl %edx,%eax jl .L14 .L13: #APP movq %mm3,-8(%ebp) #NO_APP movl -32(%ebp),%esi movl 12(%ebp),%edi movl $0,(%edi,%esi,4) xorl %edx,%edx .align 4 .L19: movl -12(%ebp),%ecx movzbl (%edx,%ecx),%eax movl -32(%ebp),%ebx movl 12(%ebp),%esi orl %eax,(%esi,%ebx,4) incl %edx cmpl $7,%edx jle .L19 incl %ebx movl %ebx,-32(%ebp) jmp .L7 .align 4 .L8: #APP emms #NO_APP leal -44(%ebp),%esp popl %ebx popl %esi popl %edi leave ret .LFE1: .Lfe1: .size absdiffmmx__FPUcPiT0N20Ucii,.Lfe1-absdiffmmx__FPUcPiT0N20Ucii .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 0xb .byte 0x4 .4byte .LCFI4-.LCFI3 .byte 0x86 .byte 0xc .byte 0x4 .4byte .LCFI5-.LCFI4 .byte 0x83 .byte 0xd .align 4 .LEFDE1: .set .LLFDE1,.LEFDE1-.LSFDE1 .ident "GCC: (GNU) egcs-2.90.29 980515 (egcs-1.0.3 release)"