[FFmpeg-cvslog] r12661 - in trunk/libavcodec/i386: dsputil_h264_template_mmx.c dsputil_h264_template_ssse3.c dsputil_mmx.c dsputil_mmx.h h264dsp_mmx.c

Mike Melanson mike
Wed Apr 2 06:30:34 CEST 2008


Loren Merritt wrote:
> On Tue, 1 Apr 2008, Mike Melanson wrote:
> 
>> What's the best way disassembly for the chroma functions?
>> objdump on the object files?
> 
> objdump -d ffmpeg_g | perl -ne 'print if /<put_h264_chroma_mc8_ssse3_rnd>:/ ... /^$/'



080ed390 <put_h264_chroma_mc8_ssse3_rnd>:
  80ed390:       57                      push   %edi
  80ed391:       56                      push   %esi
  80ed392:       83 ec 10                sub    $0x10,%esp
  80ed395:       8b 54 24 2c             mov    0x2c(%esp),%edx
  80ed399:       8b 44 24 30             mov    0x30(%esp),%eax
  80ed39d:       85 c0                   test   %eax,%eax
  80ed39f:       75 46                   jne    80ed3e7 
<put_h264_chroma_mc8_ssse3_rnd+0x57>
  80ed3a1:       85 d2                   test   %edx,%edx
  80ed3a3:       75 4a                   jne    80ed3ef 
<put_h264_chroma_mc8_ssse3_rnd+0x5f>
  80ed3a5:       8b 7c 24 28             mov    0x28(%esp),%edi
  80ed3a9:       8b 74 24 20             mov    0x20(%esp),%esi
  80ed3ad:       8b 4c 24 1c             mov    0x1c(%esp),%ecx
  80ed3b1:       8b 54 24 24             mov    0x24(%esp),%edx
  80ed3b5:       8d 04 12                lea    (%edx,%edx,1),%eax
  80ed3b8:       0f 6f 06                movq   (%esi),%mm0
  80ed3bb:       0f 6f 0c 16             movq   (%esi,%edx,1),%mm1
  80ed3bf:       0f 7f 01                movq   %mm0,(%ecx)
  80ed3c2:       0f 7f 0c 11             movq   %mm1,(%ecx,%edx,1)
  80ed3c6:       01 c6                   add    %eax,%esi
  80ed3c8:       01 c1                   add    %eax,%ecx
  80ed3ca:       0f 6f 06                movq   (%esi),%mm0
  80ed3cd:       0f 6f 0c 16             movq   (%esi,%edx,1),%mm1
  80ed3d1:       0f 7f 01                movq   %mm0,(%ecx)
  80ed3d4:       0f 7f 0c 11             movq   %mm1,(%ecx,%edx,1)
  80ed3d8:       01 c6                   add    %eax,%esi
  80ed3da:       01 c1                   add    %eax,%ecx
  80ed3dc:       83 ef 04                sub    $0x4,%edi
  80ed3df:       75 d7                   jne    80ed3b8 
<put_h264_chroma_mc8_ssse3_rnd+0x28>
  80ed3e1:       83 c4 10                add    $0x10,%esp
  80ed3e4:       5e                      pop    %esi
  80ed3e5:       5f                      pop    %edi
  80ed3e6:       c3                      ret
  80ed3e7:       85 d2                   test   %edx,%edx
  80ed3e9:       0f 85 f9 00 00 00       jne    80ed4e8 
<put_h264_chroma_mc8_ssse3_rnd+0x158>
  80ed3ef:       b9 04 00 04 00          mov    $0x40004,%ecx
  80ed3f4:       89 0c 24                mov    %ecx,(%esp)
  80ed3f7:       89 4c 24 04             mov    %ecx,0x4(%esp)
  80ed3fb:       8d 04 10                lea    (%eax,%edx,1),%eax
  80ed3fe:       89 c7                   mov    %eax,%edi
  80ed400:       c1 e7 08                shl    $0x8,%edi
  80ed403:       29 c7                   sub    %eax,%edi
  80ed405:       83 c7 08                add    $0x8,%edi
  80ed408:       66 0f 6e ff             movd   %edi,%xmm7
  80ed40c:       f3 0f 7e 34 24          movq   (%esp),%xmm6
  80ed411:       f2 0f 70 ff 00          pshuflw $0x0,%xmm7,%xmm7
  80ed416:       0f 16 f6                movlhps %xmm6,%xmm6
  80ed419:       0f 16 ff                movlhps %xmm7,%xmm7
  80ed41c:       85 d2                   test   %edx,%edx
  80ed41e:       74 65                   je     80ed485 
<put_h264_chroma_mc8_ssse3_rnd+0xf5>
  80ed420:       8b 74 24 1c             mov    0x1c(%esp),%esi
  80ed424:       8b 4c 24 20             mov    0x20(%esp),%ecx
  80ed428:       8b 54 24 28             mov    0x28(%esp),%edx
  80ed42c:       8b 44 24 24             mov    0x24(%esp),%eax
  80ed430:       f3 0f 7e 01             movq   (%ecx),%xmm0
  80ed434:       f3 0f 7e 49 01          movq   0x1(%ecx),%xmm1
  80ed439:       f3 0f 7e 14 01          movq   (%ecx,%eax,1),%xmm2
  80ed43e:       f3 0f 7e 5c 01 01       movq   0x1(%ecx,%eax,1),%xmm3
  80ed444:       66 0f 60 c1             punpcklbw %xmm1,%xmm0
  80ed448:       66 0f 60 d3             punpcklbw %xmm3,%xmm2
  80ed44c:       66 0f 38 04 c7          pmaddubsw %xmm7,%xmm0
  80ed451:       66 0f 38 04 d7          pmaddubsw %xmm7,%xmm2
  80ed456:       66 0f fd c6             paddw  %xmm6,%xmm0
  80ed45a:       66 0f fd d6             paddw  %xmm6,%xmm2
  80ed45e:       66 0f 71 d0 03          psrlw  $0x3,%xmm0
  80ed463:       66 0f 71 d2 03          psrlw  $0x3,%xmm2
  80ed468:       66 0f 67 c2             packuswb %xmm2,%xmm0
  80ed46c:       66 0f d6 06             movq   %xmm0,(%esi)
  80ed470:       0f 17 04 06             movhps %xmm0,(%esi,%eax,1)
  80ed474:       83 ea 02                sub    $0x2,%edx
  80ed477:       8d 0c 41                lea    (%ecx,%eax,2),%ecx
  80ed47a:       8d 34 46                lea    (%esi,%eax,2),%esi
  80ed47d:       7f b1                   jg     80ed430 
<put_h264_chroma_mc8_ssse3_rnd+0xa0>
  80ed47f:       83 c4 10                add    $0x10,%esp
  80ed482:       5e                      pop    %esi
  80ed483:       5f                      pop    %edi
  80ed484:       c3                      ret
  80ed485:       8b 74 24 1c             mov    0x1c(%esp),%esi
  80ed489:       8b 4c 24 20             mov    0x20(%esp),%ecx
  80ed48d:       8b 54 24 28             mov    0x28(%esp),%edx
  80ed491:       8b 44 24 24             mov    0x24(%esp),%eax
  80ed495:       f3 0f 7e 01             movq   (%ecx),%xmm0
  80ed499:       f3 0f 7e 0c 01          movq   (%ecx,%eax,1),%xmm1
  80ed49e:       66 0f 6f d1             movdqa %xmm1,%xmm2
  80ed4a2:       f3 0f 7e 1c 41          movq   (%ecx,%eax,2),%xmm3
  80ed4a7:       66 0f 60 c1             punpcklbw %xmm1,%xmm0
  80ed4ab:       66 0f 60 d3             punpcklbw %xmm3,%xmm2
  80ed4af:       66 0f 38 04 c7          pmaddubsw %xmm7,%xmm0
  80ed4b4:       66 0f 38 04 d7          pmaddubsw %xmm7,%xmm2
  80ed4b9:       66 0f fd c6             paddw  %xmm6,%xmm0
  80ed4bd:       66 0f fd d6             paddw  %xmm6,%xmm2
  80ed4c1:       66 0f 71 d0 03          psrlw  $0x3,%xmm0
  80ed4c6:       66 0f 71 d2 03          psrlw  $0x3,%xmm2
  80ed4cb:       66 0f 67 c2             packuswb %xmm2,%xmm0
  80ed4cf:       66 0f d6 06             movq   %xmm0,(%esi)
  80ed4d3:       0f 17 04 06             movhps %xmm0,(%esi,%eax,1)
  80ed4d7:       83 ea 02                sub    $0x2,%edx
  80ed4da:       8d 0c 41                lea    (%ecx,%eax,2),%ecx
  80ed4dd:       8d 34 46                lea    (%esi,%eax,2),%esi
  80ed4e0:       7f b3                   jg     80ed495 
<put_h264_chroma_mc8_ssse3_rnd+0x105>
  80ed4e2:       83 c4 10                add    $0x10,%esp
  80ed4e5:       5e                      pop    %esi
  80ed4e6:       5f                      pop    %edi
  80ed4e7:       c3                      ret
  80ed4e8:       8b 0d 60 9c 48 08       mov    0x8489c60,%ecx
  80ed4ee:       8b 35 64 9c 48 08       mov    0x8489c64,%esi
  80ed4f4:       8b 3d 68 9c 48 08       mov    0x8489c68,%edi
  80ed4fa:       89 0c 24                mov    %ecx,(%esp)
  80ed4fd:       8b 0d 6c 9c 48 08       mov    0x8489c6c,%ecx
  80ed503:       89 74 24 04             mov    %esi,0x4(%esp)
  80ed507:       89 d6                   mov    %edx,%esi
  80ed509:       89 7c 24 08             mov    %edi,0x8(%esp)
  80ed50d:       c1 e6 08                shl    $0x8,%esi
  80ed510:       29 d6                   sub    %edx,%esi
  80ed512:       89 4c 24 0c             mov    %ecx,0xc(%esp)
  80ed516:       89 c2                   mov    %eax,%edx
  80ed518:       f7 da                   neg    %edx
  80ed51a:       83 c2 08                add    $0x8,%edx
  80ed51d:       8d 4e 08                lea    0x8(%esi),%ecx
  80ed520:       0f af ca                imul   %edx,%ecx
  80ed523:       83 c6 08                add    $0x8,%esi
  80ed526:       0f af f0                imul   %eax,%esi
  80ed529:       8b 54 24 28             mov    0x28(%esp),%edx
  80ed52d:       8b 44 24 24             mov    0x24(%esp),%eax
  80ed531:       66 0f 6e f9             movd   %ecx,%xmm7
  80ed535:       66 0f 6e f6             movd   %esi,%xmm6
  80ed539:       66 0f 6f 2c 24          movdqa (%esp),%xmm5
  80ed53e:       f2 0f 70 ff 00          pshuflw $0x0,%xmm7,%xmm7
  80ed543:       f2 0f 70 f6 00          pshuflw $0x0,%xmm6,%xmm6
  80ed548:       0f 16 ff                movlhps %xmm7,%xmm7
  80ed54b:       0f 16 f6                movlhps %xmm6,%xmm6
  80ed54e:       8b 74 24 1c             mov    0x1c(%esp),%esi
  80ed552:       8b 4c 24 20             mov    0x20(%esp),%ecx
  80ed556:       f3 0f 7e 01             movq   (%ecx),%xmm0
  80ed55a:       f3 0f 7e 49 01          movq   0x1(%ecx),%xmm1
  80ed55f:       66 0f 60 c1             punpcklbw %xmm1,%xmm0
  80ed563:       01 c1                   add    %eax,%ecx
  80ed565:       f3 0f 7e 09             movq   (%ecx),%xmm1
  80ed569:       f3 0f 7e 51 01          movq   0x1(%ecx),%xmm2
  80ed56e:       f3 0f 7e 1c 01          movq   (%ecx,%eax,1),%xmm3
  80ed573:       f3 0f 7e 64 01 01       movq   0x1(%ecx,%eax,1),%xmm4
  80ed579:       8d 0c 41                lea    (%ecx,%eax,2),%ecx
  80ed57c:       66 0f 60 ca             punpcklbw %xmm2,%xmm1
  80ed580:       66 0f 60 dc             punpcklbw %xmm4,%xmm3
  80ed584:       66 0f 6f d1             movdqa %xmm1,%xmm2
  80ed588:       66 0f 6f e3             movdqa %xmm3,%xmm4
  80ed58c:       66 0f 38 04 c7          pmaddubsw %xmm7,%xmm0
  80ed591:       66 0f 38 04 ce          pmaddubsw %xmm6,%xmm1
  80ed596:       66 0f 38 04 d7          pmaddubsw %xmm7,%xmm2
  80ed59b:       66 0f 38 04 de          pmaddubsw %xmm6,%xmm3
  80ed5a0:       66 0f fd c5             paddw  %xmm5,%xmm0
  80ed5a4:       66 0f fd d5             paddw  %xmm5,%xmm2
  80ed5a8:       66 0f fd c8             paddw  %xmm0,%xmm1
  80ed5ac:       66 0f fd da             paddw  %xmm2,%xmm3
  80ed5b0:       66 0f 6f c4             movdqa %xmm4,%xmm0
  80ed5b4:       66 0f 71 d1 06          psrlw  $0x6,%xmm1
  80ed5b9:       66 0f 71 d3 06          psrlw  $0x6,%xmm3
  80ed5be:       66 0f 67 cb             packuswb %xmm3,%xmm1
  80ed5c2:       66 0f d6 0e             movq   %xmm1,(%esi)
  80ed5c6:       0f 17 0c 06             movhps %xmm1,(%esi,%eax,1)
  80ed5ca:       83 ea 02                sub    $0x2,%edx
  80ed5cd:       8d 34 46                lea    (%esi,%eax,2),%esi
  80ed5d0:       7f 93                   jg     80ed565 
<put_h264_chroma_mc8_ssse3_rnd+0x1d5>
  80ed5d2:       83 c4 10                add    $0x10,%esp
  80ed5d5:       5e                      pop    %esi
  80ed5d6:       5f                      pop    %edi
  80ed5d7:       c3                      ret


-- 
	-Mike Melanson




More information about the ffmpeg-cvslog mailing list