Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Load reference 6x3 area for chroma NV12 4x4 MC
  3.  * Copyright © <2010>, Intel Corporation.
  4.  *
  5.  * This program is licensed under the terms and conditions of the
  6.  * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at
  7.  * http://www.opensource.org/licenses/eclipse-1.0.php.
  8.  *
  9.  */
  10. // Kernel name: LoadRef_C_6x3.asm
  11. //
  12. // Load reference 6x3 area for chroma NV12 4x4 MC
  13.  
  14.  
  15. //#if !defined(__LOADREF_C_6x3__)               // Make sure this is only included once
  16. //#define __LOADREF_C_6x3__
  17.  
  18.  
  19. #ifdef DEV_ILK
  20.         add (1)         pMSGDSC:ud                      gMSGDSC_R:ud                                    0x00100010:ud
  21. #else
  22.         add (1)         pMSGDSC:ud                      gMSGDSC_R:ud                                    0x00010010:ud
  23. #endif  // DEV_ILK
  24.  
  25.         // Compute integer and fractional components of MV
  26.     asr (2)             gMVX_INT<1>:w           r[pMV,0]<2;2,1>:w                               0x03:w {NoDDClr}
  27.     and (2)             gMVX_FRACC<1>:w         r[pMV,0]<2;2,1>:w                               0x07:w {NoDDChk}
  28.        
  29.         // Compute top-left corner position to be loaded
  30.     mov (2)             gMSGSRC.0<1>:d          gMVX_INT<2;2,1>:w
  31.         shl (1)         gMSGSRC.0:d                     gMSGSRC.0:d                                             1:w
  32.  
  33.     // Read 8x3 pixels
  34.     mov (1)             gMSGSRC.2:ud            0x00020005:ud
  35.     send (8)    gudREFC(0)<1>       mMSGHDRC                                            gMSGSRC<8;8,1>:ud       DAPREAD pMSGDSC:ud
  36.  
  37.        
  38. //#endif        // !defined(__LOADREF_C_6x3__)
  39.