Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Scoreboard update function for decoding kernels
  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. //
  11. // Module name: scoreboard_update.asm
  12. //
  13. //      Scoreboard update function for decoding kernels
  14. //
  15. //      This module is used by decoding kernels to send message to scoreboard to update the
  16. //      "complete" status, thus the dependency of the MB can be cleared.
  17. //
  18. //  $Revision: 6 $
  19. //  $Date: 10/16/06 5:19p $
  20. //
  21.     mov (8)             MSGHDRY1<1>:ud  0x00000000:ud                           // Initialize message header payload with 0
  22.  
  23.         // Compose M0.5:ud information
  24.         add (1) MSGHDRY1.10<1>:uw       r0.20:ub        0x0200:uw                               // Message length = 1 DWORD
  25.         and (1) MSGHDRY1.11<1>:uw       M05_STORE<0;1,0>:uw     SB_MASK*4:uw    // Retrieve stored value and wrap around scoreboard
  26.  
  27.         or (1)  MSGHDRY1.0<1>:ud        M05_STORE<0;1,0>:uw     0xc0000000:ud   // Set "Completed" bits
  28.  
  29. #ifndef BSDRESET_ENABLE
  30. #ifdef INTER_KERNEL
  31.         mov     (1)     gREG_WRITE_COMMIT_Y<1>:ud       gREG_WRITE_COMMIT_Y<0;1,0>:ud           // Make sure Y write is committed
  32.         mov     (1)     gREG_WRITE_COMMIT_UV<1>:ud      gREG_WRITE_COMMIT_UV<0;1,0>:ud          // Make sure U/V write is committed
  33. #else
  34.         mov     (1)     REG_WRITE_COMMIT_Y<1>:ud        REG_WRITE_COMMIT_Y<0;1,0>:ud            // Make sure Y write is committed
  35.         mov     (1)     REG_WRITE_COMMIT_UV<1>:ud       REG_WRITE_COMMIT_UV<0;1,0>:ud           // Make sure U/V write is committed
  36. #endif  // INTER_KERNEL
  37. #endif  // BSDRESET_ENABLE
  38.  
  39.         send (8)        NULLREG  MSGHDRY1       null:ud    MSG_GW       FWDMSGDSC
  40.  
  41. // End of scoreboard_update
  42.