Advertisement
Guest User

Untitled

a guest
Nov 15th, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1.  
  2. ;%include "libavutil/x86/x86inc.asm"
  3. %include "libavutil/x86/x86util.asm"
  4.  
  5. SECTION_RODATA
  6.  
  7. SECTION .text
  8.  
  9. INIT_XMM sse4 ; adds ff_ and _sse4 to function name
  10.  
  11. ;******************************
  12. ;void put_hevc_mc_pixels_8(int16_t *dst, ptrdiff_t dststride,
  13. ; uint8_t *_src, ptrdiff_t _srcstride,
  14. ; int width, int height, int mx, int my,
  15. ; int16_t* mcbuffer)
  16. ;
  17. ; r0 : *dst
  18. ; r1 : dststride
  19. ; r2 : *src
  20. ; r3 : srcstride
  21. ; r4 : width
  22. ; r5 : height
  23. ;
  24. ;******************************
  25. cglobal put_hevc_mc_pixels_8, 9, 12
  26. pxor xmm0,xmm0 ;set register at zero
  27. mov r6,0 ;height
  28. ;8 by 8
  29. mc_pixels_h: ;for height
  30. mov r7,0 ;width
  31.  
  32. mc_pixels_w: ;for width
  33. mov r9,0
  34. mov r9,[r2+r7]
  35. shl r9,6
  36. mov [r0+r7],r9
  37. inc r7
  38. ; movq xmm1,[r2+r7] ;load 64 bits
  39. ; punpcklbw xmm1,xmm0 ;unpack to 16 bits
  40. ; psllw xmm1,6 ;shift left 6 bits (14 - bit depth)
  41. ; movdqu [r0+r7],xmm1 ;store 128 bits
  42. ; add r7,8 ;add 8 for width loop
  43. cmp r7, r4 ;cmp width
  44. jl mc_pixels_w ;width loop
  45. add r0,r1 ;dst += dststride
  46. add r2,r3 ;src += srcstride
  47. inc r6
  48. cmp r6,r5 ;cmp height
  49. jl mc_pixels_h ;height loop
  50. REP_RET
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement