OSDN Git Service

i965_drv_video: add support for H264 on Clarkdale/Arrandale
[android-x86/hardware-intel-common-libva.git] / i965_drv_video / shaders / h264 / mc / scoreboard_save_AS.asm
1 /*\r
2  * Save scoreboard data before content switching\r
3  * Copyright © <2010>, Intel Corporation.\r
4  *\r
5  * This program is licensed under the terms and conditions of the\r
6  * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at\r
7  * http://www.opensource.org/licenses/eclipse-1.0.php.\r
8  *\r
9  */\r
10 // Module name: scoreboard_save_AS.asm\r
11 //\r
12 // Save scoreboard data before content switching\r
13 //\r
14 //\r
15         //      r1 - r35 need to be saved\r
16         // They are saved in a 2D surface with width of 32 and height of 64.\r
17         // Each row corresponds to one GRF register in the following order\r
18         // r4 - r35     : Scoreboard message\r
19         // r1 - r3  : Scoreboard kernel control data\r
20 \r
21     mov (8)     MSGHDR<1>:ud    r0.0<8;8,1>:ud  // Initialize message header payload with r0\r
22     mov (1)     MSGHDR.2:ud             0x0007001f:ud   // for 8 registers\r
23 \r
24     mov (2)     MSGHDR.0:ud             0:ud\r
25         $for(0; <8; 2) {\r
26         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1)REGION(8,1) {Compr}\r
27         }\r
28     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r4 - r11\r
29 \r
30     mov (1)     MSGHDR.1:ud             8:ud\r
31         $for(0; <8; 2) {\r
32         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+8)REGION(8,1) {Compr}\r
33         }\r
34     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r12 - r19\r
35 \r
36     mov (1)     MSGHDR.1:ud             16:ud\r
37         $for(0; <8; 2) {\r
38         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+16)REGION(8,1) {Compr}\r
39         }\r
40     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r20 - r27\r
41 \r
42     mov (1)     MSGHDR.1:ud             24:ud\r
43         $for(0; <8; 2) {\r
44         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+24)REGION(8,1) {Compr}\r
45         }\r
46     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r28 - r35\r
47 \r
48     mov (1)     MSGHDR.1:ud             32:ud\r
49         $for(0; <8; 2) {\r
50         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+32)REGION(8,1) {Compr}\r
51         }\r
52     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r36 - r43\r
53 \r
54     mov (1)     MSGHDR.1:ud             40:ud\r
55         $for(0; <8; 2) {\r
56         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+40)REGION(8,1) {Compr}\r
57         }\r
58     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r44 - r51\r
59 \r
60     mov (1)     MSGHDR.1:ud             48:ud\r
61         $for(0; <8; 2) {\r
62         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+48)REGION(8,1) {Compr}\r
63         }\r
64     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r52 - r59\r
65 \r
66     mov (1)     MSGHDR.1:ud             56:ud\r
67         $for(0; <8; 2) {\r
68         mov (16)        MSGPAYLOADD(%1)<1>      CMD_SB(%1+56)REGION(8,1) {Compr}\r
69         }\r
70     send (8)    NULLREG MSGHDR  null:ud DWBWMSGDSC+0x00800000+AS_SAVE   // Save r60 - r67\r
71 \r
72 // End of scoreboard_save_AS\r