2 * Copyright © <2010>, Intel Corporation.
\r
4 * This program is licensed under the terms and conditions of the
\r
5 * Eclipse Public License (EPL), version 1.0. The full text of the EPL is at
\r
6 * http://www.opensource.org/licenses/eclipse-1.0.php.
\r
9 // Module name: loadNV12_16x16T.asm
\r
11 // Load and transpose NV12 16x16 block
\r
13 //----------------------------------------------------------------
\r
14 // Symbols need to be defined before including this module
\r
16 // Source region in :ud
\r
17 // SRC_YD: SRC_YD Base=rxx ElementSize=4 SrcRegion=REGION(8,1) Type=ud // 8 GRFs
\r
18 // SRC_UD: SRC_UD Base=rxx ElementSize=4 SrcRegion=REGION(8,1) Type=ud (U+V for NV12) // 4 GRFs
\r
20 // Source region is :ub. The same region as :ud region
\r
21 // SRC_YB: SRC_YB Base=rxx ElementSize=1 SrcRegion=REGION(16,1) Type=ub // 8 GRFs
\r
22 // SRC_UB: SRC_UB Base=rxx ElementSize=1 SrcRegion=REGION(16,1) Type=ub // 2 GRFs
\r
23 // SRC_VB: SRC_VB Base=rxx ElementSize=1 SrcRegion=REGION(16,1) Type=ub // 2 GRFs
\r
25 // Binding table index:
\r
26 // BI_SRC_Y: Binding table index of Y surface
\r
27 // BI_SRC_UV: Binding table index of UV surface (NV12)
\r
30 // BUF_B: BUF_B Base=rxx ElementSize=1 SrcRegion=REGION(16,1) Type=ub
\r
32 //----------------------------------------------------------------
\r
34 #if defined(_DEBUG)
\r
35 mov (1) EntrySignatureC:w 0xDDD1:w
\r
39 mov (2) MSGSRC.0<1>:ud ORIX_CUR<2;2,1>:w // Block origin
\r
40 mov (1) MSGSRC.2<1>:ud 0x000F000F:ud // Block width and height (16x16)
\r
41 send (8) SRC_YD(0)<1> MSGHDRY MSGSRC<8;8,1>:ud DAPREAD RESP_LEN(8)+DWBRMSGDSC_RC+BI_SRC_Y // Read 8 GRFs
\r
44 asr (1) MSGSRC.1:ud MSGSRC.1:ud 1:w // NV12 U+V block origin y = half of Y comp
\r
45 mov (1) MSGSRC.2<1>:ud 0x0007000F:ud // NV12 U+V block width and height (16x8)
\r
46 send (8) SRC_UD(0)<1> MSGHDRU MSGSRC<8;8,1>:ud DAPREAD RESP_LEN(4)+DWBRMSGDSC_RC+BI_SRC_UV // Read 4 GRFs
\r
48 #include "TransposeNV12_16x16.asm"
\r
50 // #include "Transpose_Y_16x16.asm"
\r
51 // #include "Transpose_NV12_UV_16x8.asm"
\r
53 // End of loadNV12_16x16T
\r