Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Decode Intra_PCM macroblock
  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: Intra_PCM.asm
  11. //
  12. // Decoding of I_PCM macroblock
  13. //
  14. //  $Revision: 8 $
  15. //  $Date: 10/18/06 4:10p $
  16. //
  17.  
  18. // ----------------------------------------------------
  19. //  Main: Intra_PCM
  20. // ----------------------------------------------------
  21.  
  22. .kernel Intra_PCM
  23. INTRA_PCM:
  24.  
  25. #ifdef _DEBUG
  26. // WA for FULSIM so we'll know which kernel is being debugged
  27. mov (1) acc0:ud 0x03aa55a5:ud
  28. #endif
  29.  
  30. #include "SetupForHWMC.asm"
  31.  
  32. // Not actually needed here but just want to slow down the Intra-PCM to avoid race condition
  33. //
  34. #ifdef SW_SCOREBOARD
  35.         and (1)   REG_INTRA_PRED_AVAIL_FLAG_WORD<1>:w   REG_INTRA_PRED_AVAIL_FLAG_WORD<0;1,0>:w 0xffe0:w        // Ensure all neighbor avail flags are "0"
  36.    CALL(scoreboard_start_intra,1)
  37.         wait    n0:ud           //      Now wait for scoreboard to response
  38. #endif
  39.  
  40. //
  41. //  Decoding Y blocks
  42. //
  43. //      In I_PCM mode, the samples are already arranged in raster scan order within the macroblock.
  44. //      We just need to save them to picture buffers
  45. //
  46.     #include "save_I_PCM.asm"               // Save to destination picture buffers
  47.  
  48. #ifdef SW_SCOREBOARD    
  49.    #include "scoreboard_update.asm"
  50. #endif
  51.  
  52. // Terminate the thread
  53. //
  54.    #include "EndIntraThread.asm"
  55.  
  56. // End of Intra_PCM
  57.