~gma500/+junk/gma500-maverick

« back to all changes in this revision

Viewing changes to libva-0.31.1/i965_drv_video/shaders/h264/mc/scoreboard_update.asm

  • Committer: Luca Forina
  • Date: 2011-02-14 09:55:00 UTC
  • Revision ID: luca.forina@gmail.com-20110214095500-kq7o333fbjuoquqs
new commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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