Advertisement
Guest User

Untitled

a guest
Aug 15th, 2015
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.99 KB | None | 0 0
  1. diff --git a/libavcodec/x86/vp9mc.asm b/libavcodec/x86/vp9mc.asm
  2. index 5393957..8109fa0 100644
  3. --- a/libavcodec/x86/vp9mc.asm
  4. +++ b/libavcodec/x86/vp9mc.asm
  5. @@ -192,42 +192,49 @@ filter_sse2_h_fn avg
  6.  
  7.  %macro filter_h_fn 1
  8.  %assign %%px mmsize/2
  9. -cglobal vp9_%1_8tap_1d_h_ %+ %%px, 6, 6, 11, dst, dstride, src, sstride, h, filtery
  10. -    mova        m6, [pw_256]
  11. -    mova        m7, [filteryq+ 0]
  12. +cglobal vp9_%1_8tap_1d_h_ %+ %%px, 6, 6, 10, dst, dstride, src, sstride, h, filtery
  13. +    mova        m5, [pw_256]
  14. +    mova        m6, [filteryq+ 0]
  15. +    mova        m7, [filteryq+32]
  16.  %if ARCH_X86_64 && mmsize > 8
  17. -    mova        m8, [filteryq+32]
  18. -    mova        m9, [filteryq+64]
  19. -    mova       m10, [filteryq+96]
  20. +    mova        m8, [filteryq+64]
  21. +    mova        m9, [filteryq+96]
  22.  %endif
  23.  .loop:
  24. -    movh        m0, [srcq-3]
  25. -    movh        m1, [srcq-2]
  26. -    movh        m2, [srcq-1]
  27. -    movh        m3, [srcq+0]
  28. -    movh        m4, [srcq+1]
  29. -    movh        m5, [srcq+2]
  30. -    punpcklbw   m0, m1
  31. -    punpcklbw   m2, m3
  32. -    movh        m1, [srcq+3]
  33. -    movh        m3, [srcq+4]
  34. +    movh        m1, [srcq-3]
  35. +    movq        m0, [srcq+%%px-3]
  36. +    punpcklbw   m1, m1
  37. +%if mmsize == 8
  38. +    punpckhbw   m3, m0, m0
  39. +%endif
  40. +    punpcklbw   m0, m0
  41.      add       srcq, sstrideq
  42. -    punpcklbw   m4, m5
  43. -    punpcklbw   m1, m3
  44. -    pmaddubsw   m0, m7
  45. +%if mmsize == 8
  46. +    mova        m4, m3
  47. +    palignr     m3, m0, 1
  48. +    palignr     m4, m0, 5
  49. +%else
  50. +    mova        m3, m0
  51. +    mova        m4, m0
  52. +    palignr     m3, m1, 9
  53. +    palignr     m4, m1, 13
  54. +%endif
  55. +    mova        m2, m0
  56. +    palignr     m0, m1, 1
  57. +    palignr     m2, m1, 5
  58. +    pmaddubsw   m0, m6
  59. +    pmaddubsw   m2, m7
  60.  %if ARCH_X86_64 && mmsize > 8
  61. -    pmaddubsw   m2, m8
  62. +    pmaddubsw   m3, m8
  63.      pmaddubsw   m4, m9
  64. -    pmaddubsw   m1, m10
  65.  %else
  66. -    pmaddubsw   m2, [filteryq+32]
  67. -    pmaddubsw   m4, [filteryq+64]
  68. -    pmaddubsw   m1, [filteryq+96]
  69. +    pmaddubsw   m3, [filteryq+64]
  70. +    pmaddubsw   m4, [filteryq+96]
  71.  %endif
  72. -    paddw       m0, m4
  73. -    paddw       m2, m1
  74. +    paddw       m0, m3
  75. +    paddw       m2, m4
  76.      paddsw      m0, m2
  77. -    pmulhrsw    m0, m6
  78. +    pmulhrsw    m0, m5
  79.  %ifidn %1, avg
  80.      movh        m1, [dstq]
  81.  %endif
  82. @@ -260,35 +267,36 @@ cglobal vp9_%1_8tap_1d_h_ %+ %%px, 6, 6, 14, dst, dstride, src, sstride, h, filt
  83.      mova       m10, [filteryq+64]
  84.      mova       m11, [filteryq+96]
  85.  .loop:
  86. -    movu        m0, [srcq-3]
  87. -    movu        m1, [srcq-2]
  88. -    movu        m2, [srcq-1]
  89. -    movu        m3, [srcq+0]
  90. -    movu        m4, [srcq+1]
  91. -    movu        m5, [srcq+2]
  92. -    movu        m6, [srcq+3]
  93. -    movu        m7, [srcq+4]
  94. +    movu       m12, [srcq-3]
  95. +    movu        m1, [srcq+5]
  96. +    punpckhbw   m0, m12, m12
  97. +    punpckhbw   m1, m1
  98. +    punpcklbw  m12, m12
  99.      add       srcq, sstrideq
  100. -    SBUTTERFLY  bw, 0, 1, 12
  101. -    SBUTTERFLY  bw, 2, 3, 12
  102. -    SBUTTERFLY  bw, 4, 5, 12
  103. -    SBUTTERFLY  bw, 6, 7, 12
  104. -    pmaddubsw   m0, m8
  105. -    pmaddubsw   m1, m8
  106. -    pmaddubsw   m2, m9
  107. -    pmaddubsw   m3, m9
  108. -    pmaddubsw   m4, m10
  109. -    pmaddubsw   m5, m10
  110. -    pmaddubsw   m6, m11
  111. +    palignr     m7, m1, m0, 13
  112. +    palignr     m6, m0, m12, 13
  113. +    palignr     m5, m1, m0, 9
  114. +    palignr     m4, m0, m12, 9
  115. +    palignr     m3, m1, m0, 5
  116. +    palignr     m2, m0, m12, 5
  117. +    palignr     m1, m0, 1
  118. +    palignr     m0, m12, 1
  119.      pmaddubsw   m7, m11
  120. -    paddw       m0, m4
  121. -    paddw       m1, m5
  122. -    paddw       m2, m6
  123. +    pmaddubsw   m6, m11
  124. +    pmaddubsw   m5, m10
  125. +    pmaddubsw   m4, m10
  126. +    pmaddubsw   m3, m9
  127. +    pmaddubsw   m2, m9
  128. +    pmaddubsw   m1, m8
  129. +    pmaddubsw   m0, m8
  130.      paddw       m3, m7
  131. -    paddsw      m0, m2
  132. +    paddw       m2, m6
  133. +    paddw       m1, m5
  134. +    paddw       m0, m4
  135.      paddsw      m1, m3
  136. -    pmulhrsw    m0, m13
  137. +    paddsw      m0, m2
  138.      pmulhrsw    m1, m13
  139. +    pmulhrsw    m0, m13
  140.      packuswb    m0, m1
  141.  %ifidn %1, avg
  142.      pavgb       m0, [dstq]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement