Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5361 | serge | 1 | /* |
2 | * Copyright © <2010>, Intel Corporation. |
||
3 | * |
||
4 | * This program is licensed under the terms and conditions of the |
||
5 | * Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
||
6 | * http://www.opensource.org/licenses/eclipse-1.0.php. |
||
7 | * |
||
8 | */ |
||
9 | // Module name: load_Y_16x16T.asm |
||
10 | // |
||
11 | // Load and transpose Y 16x16 block |
||
12 | // |
||
13 | //---------------------------------------------------------------- |
||
14 | // Symbols need to be defined before including this module |
||
15 | // |
||
16 | // Source region in :ud |
||
17 | // SRC_YD: SRC_YD Base=rxx ElementSize=4 SrcRegion=REGION(8,1) Type=ud // 8 GRFs |
||
18 | // |
||
19 | // Binding table index: |
||
20 | // BI_SRC_Y: Binding table index of Y surface |
||
21 | // |
||
22 | //---------------------------------------------------------------- |
||
23 | |||
24 | #if defined(_DEBUG) |
||
25 | mov (1) EntrySignatureC:w 0xDDD1:w |
||
26 | #endif |
||
27 | |||
28 | // FieldModeCurrentMbFlag determines how to access left MB |
||
29 | and.z.f0.0 (1) null:w r[ECM_AddrReg, BitFlags]:ub FieldModeCurrentMbFlag:w |
||
30 | |||
31 | and.nz.f0.1 (1) NULLREGW BitFields:w BotFieldFlag:w // Get bottom field flag |
||
32 | |||
33 | // Read Y |
||
34 | mov (2) MSGSRC.0<1>:d ORIX_CUR<2;2,1>:w { NoDDClr } // Block origin |
||
35 | mov (1) MSGSRC.2<1>:ud 0x000F000F:ud { NoDDChk } // Block width and height (16x16) |
||
36 | |||
37 | // Set message descriptor, etc. |
||
38 | |||
39 | (f0.0) if (1) ILDB_LABEL(ELSE_Y_16x16T) |
||
40 | |||
41 | // Frame picture |
||
42 | mov (1) MSGDSC RESP_LEN(8)+DWBRMSGDSC_SC+BI_SRC_Y:ud // Read 8 GRFs from SRC_Y |
||
43 | |||
44 | (f0.1) add (1) MSGSRC.1:d MSGSRC.1:d 16:w // Add vertical offset 16 for bot MB in MBAFF mode |
||
45 | |||
46 | ILDB_LABEL(ELSE_Y_16x16T): |
||
47 | else (1) ILDB_LABEL(ENDIF_Y_16x16T) |
||
48 | |||
49 | // Field picture |
||
50 | (f0.1) mov (1) MSGDSC RESP_LEN(8)+DWBRMSGDSC_SC_BF+BI_SRC_Y:ud // Read 8 GRFs from SRC_Y bottom field |
||
51 | (-f0.1) mov (1) MSGDSC RESP_LEN(8)+DWBRMSGDSC_SC_TF+BI_SRC_Y:ud // Read 8 GRFs from SRC_Y top field |
||
52 | |||
53 | asr (1) MSGSRC.1:d MSGSRC.1:d 1:w // Reduce y by half in field access mode |
||
54 | |||
55 | endif |
||
56 | ILDB_LABEL(ENDIF_Y_16x16T): |
||
57 | |||
58 | send (8) SRC_YD(0)<1> MSGHDRY MSGSRC<8;8,1>:ud DAPREAD MSGDSC |
||
59 | |||
60 | // #include "Transpose_Cur_Y_16x16.asm" |
||
61 | |||
62 | // End of load_Y_16x16T8;8,1>1>1>2;2,1>1>2010> |