Guest User

Untitled

a guest
Apr 16th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;----------------------------------------------------------------------------
  2. ; static int pixel_vsad( pixel *src(r0), int stride(r1), int height(r2))
  3. ;----------------------------------------------------------------------------
  4. %macro PIXEL_VSAD 0
  5. cglobal pixel_vsad, 3,3
  6.     mova      m0, [r0]
  7.     mova      m1, [r0+r1]
  8.     lea       r0, [r0+r1*2]
  9.     psubw     m0, m1
  10.     pabsw     m0, m1
  11.     paddw     m0, m1
  12.     sub      r2d, 2
  13.     je .end
  14. .loop:
  15.     mova      m2, [r0]
  16.     mova      m3, [r0+r1]
  17.     lea       r0, [r0+r1*2]
  18.     psubw     m1, m2
  19.     pabsw     m1, m2
  20.     paddw     m1, m2
  21.     psubw     m2, m3
  22.     pabsw     m2, m3
  23.     paddw     m2, m3
  24.     paddw     m0, m1
  25.     paddw     m0, m2
  26.     mova      m1, m3
  27.     sub      r2d, 2
  28.     jg .loop
  29. .end:
  30.     movhlps   m1, m0
  31.     paddw     m0, m1
  32.     movd     eax, m0
  33.     RET
  34. %endmacro
  35. INIT_XMM sse2
  36. PIXEL_VSAD
Add Comment
Please, Sign In to add comment