mmx_main.asm
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:1k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. ;
  2. ; mmx format converter main loops for HERMES
  3. ; Some routines Copyright (c) 1998 Christian Nentwich (c.nentwich@cs.ucl.ac.uk)
  4. ; This source code is licensed under the GNU LGPL
  5. ; Please refer to the file COPYING.LIB contained in the distribution for
  6. ; licensing conditions
  7. ;
  8. BITS 32
  9. GLOBAL _ConvertMMX
  10. GLOBAL _mmxreturn
  11. SECTION .text
  12. ;; _ConvertMMX:  
  13. ;; [ESP+8] ConverterInfo*
  14. ;; --------------------------------------------------------------------------
  15. ;; ConverterInfo (ebp+..)
  16. ;;   0: void *s_pixels
  17. ;;   4: int s_width
  18. ;;   8: int s_height
  19. ;;  12: int s_add
  20. ;;  16: void *d_pixels
  21. ;;  20: int d_width
  22. ;;  24: int d_height
  23. ;;  28: int d_add
  24. ;;  32: void (*converter_function)() 
  25. ;;  36: int32 *lookup
  26. _ConvertMMX:
  27. push ebp
  28. mov ebp,esp
  29. ; Save the registers used by the blitters, necessary for optimized code
  30. pusha
  31. mov eax,[ebp+8]
  32.         cmp dword [eax+4],BYTE 0
  33. je endconvert
  34. mov ebp,eax
  35. mov esi,[ebp+0]
  36. mov edi,[ebp+16]
  37. y_loop:
  38. mov ecx,[ebp+4]
  39. jmp [ebp+32]
  40. _mmxreturn:
  41. add esi,[ebp+12]
  42. add edi,[ebp+28]
  43. dec dword  [ebp+8]
  44. jnz y_loop
  45. ; Restore the registers used by the blitters, necessary for optimized code
  46. popa
  47. pop ebp
  48. endconvert:
  49. emms
  50. ret