103b705cfSriastradh/* GRF allocation: 203b705cfSriastradh g1~g30: constant buffer 303b705cfSriastradh g1~g2:intra IQ matrix 403b705cfSriastradh g3~g4:non intra IQ matrix 503b705cfSriastradh g5~g20:IDCT table 603b705cfSriastradh g31: thread payload 703b705cfSriastradh g58~g81:reference data 803b705cfSriastradh g82: thread payload backup 903b705cfSriastradh g84~g107:IDCT data 1003b705cfSriastradh g115: message descriptor for reading reference data */ 1103b705cfSriastradhmov (8) g82.0<1>UD g31.0<8,8,1>UD {align1}; 1203b705cfSriastradhmov (1) g126.8<1>UD ip {align1}; 1303b705cfSriastradhadd (1) ip g21.0<1,1,1>UD 0x50UD {align1}; //jump to the lib to do IQ and IDCT 1403b705cfSriastradh 1503b705cfSriastradh/*field 0 of Y*/ 1603b705cfSriastradhasr (2) g31.14<1>W g82.18<2,2,1>W 1W {align1}; 1703b705cfSriastradhadd (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; 1803b705cfSriastradhand (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; 1903b705cfSriastradhand.nz (1) null g82.31<1,1,1>UB 0x2UW {align1}; //motion vertical field select 2003b705cfSriastradh(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; 2103b705cfSriastradhmov (1) g115.16<1>UW 1UW {align1}; //0:forward 1:backward 2203b705cfSriastradhmov (1) a0.0<1>UD 0x0A52UD {align1}; //g82.18,motion vector 2303b705cfSriastradhmov (1) g126.8<1>UD ip {align1}; 2403b705cfSriastradhadd (1) ip g21.0<1,1,1>UD 0x20UD {align1}; //jump to the lib to read reference data 2503b705cfSriastradh 2603b705cfSriastradhmov (8) g58.0<1>UD g32.0<8,8,1>UD {align1}; 2703b705cfSriastradhmov (8) g60.0<1>UD g33.0<8,8,1>UD {align1}; 2803b705cfSriastradhmov (8) g62.0<1>UD g34.0<8,8,1>UD {align1}; 2903b705cfSriastradhmov (8) g64.0<1>UD g35.0<8,8,1>UD {align1}; 3003b705cfSriastradhmov (8) g66.0<1>UD g36.0<8,8,1>UD {align1}; 3103b705cfSriastradhmov (8) g68.0<1>UD g37.0<8,8,1>UD {align1}; 3203b705cfSriastradhmov (8) g70.0<1>UD g38.0<8,8,1>UD {align1}; 3303b705cfSriastradhmov (8) g72.0<1>UD g39.0<8,8,1>UD {align1}; 3403b705cfSriastradh 3503b705cfSriastradh/*field 1 of Y*/ 3603b705cfSriastradhasr (2) g31.14<1>W g82.26<2,2,1>W 1W {align1}; 3703b705cfSriastradhadd (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; 3803b705cfSriastradhand (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; 3903b705cfSriastradhand.nz (1) null g82.31<1,1,1>UB 0x8UW {align1}; 4003b705cfSriastradh(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; 4103b705cfSriastradhmov (1) a0.0<1>UD 0x0A5AUD {align1}; //g82.14,motion vector 4203b705cfSriastradhmov (1) g126.8<1>UD ip {align1}; 4303b705cfSriastradhadd (1) ip g21.0<1,1,1>UD 0x20UD {align1}; //jump to the lib to read reference data 4403b705cfSriastradh 4503b705cfSriastradhmov (8) g59.0<1>UD g32.0<8,8,1>UD {align1}; 4603b705cfSriastradhmov (8) g61.0<1>UD g33.0<8,8,1>UD {align1}; 4703b705cfSriastradhmov (8) g63.0<1>UD g34.0<8,8,1>UD {align1}; 4803b705cfSriastradhmov (8) g65.0<1>UD g35.0<8,8,1>UD {align1}; 4903b705cfSriastradhmov (8) g67.0<1>UD g36.0<8,8,1>UD {align1}; 5003b705cfSriastradhmov (8) g69.0<1>UD g37.0<8,8,1>UD {align1}; 5103b705cfSriastradhmov (8) g71.0<1>UD g38.0<8,8,1>UD {align1}; 5203b705cfSriastradhmov (8) g73.0<1>UD g39.0<8,8,1>UD {align1}; 5303b705cfSriastradh 5403b705cfSriastradh/*field 0 of UV*/ 5503b705cfSriastradhshr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1}; 5603b705cfSriastradh 5703b705cfSriastradhasr (2) g31.14<1>W g82.18<2,2,1>W 2W {align1}; 5803b705cfSriastradhadd (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; 5903b705cfSriastradhand (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; 6003b705cfSriastradhand.nz (1) null g82.31<1,1,1>UB 0x2UW {align1}; 6103b705cfSriastradh(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; 6203b705cfSriastradhmov (1) a0.0<1>UD 0x0A52UD {align1}; //g82.18,motion vector 6303b705cfSriastradhmov (1) g126.8<1>UD ip {align1}; 6403b705cfSriastradhadd (1) ip g21.0<1,1,1>UD 0x30UD {align1}; //jump to the lib to read reference data 6503b705cfSriastradh 6603b705cfSriastradhmov (16) g74.0<1>UW g32.0<8,8,1>UW {align1 compr}; 6703b705cfSriastradhmov (16) g76.0<1>UW g34.0<8,8,1>UW {align1 compr}; 6803b705cfSriastradhmov (16) g78.0<1>UW g36.0<8,8,1>UW {align1 compr}; 6903b705cfSriastradhmov (16) g80.0<1>UW g38.0<8,8,1>UW {align1 compr}; 7003b705cfSriastradh 7103b705cfSriastradh/*field 1 of UV*/ 7203b705cfSriastradhasr (2) g31.14<1>W g82.26<2,2,1>W 2W {align1}; 7303b705cfSriastradhadd (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; 7403b705cfSriastradhand (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; 7503b705cfSriastradhand.nz (1) null g82.31<1,1,1>UB 0x8UW {align1}; 7603b705cfSriastradh(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; 7703b705cfSriastradhmov (1) a0.0<1>UD 0x0A5AUD {align1}; //g82.14,motion vector 7803b705cfSriastradhmov (1) g126.8<1>UD ip {align1}; 7903b705cfSriastradhadd (1) ip g21.0<1,1,1>UD 0x30UD {align1}; //jump to the lib to read reference data 8003b705cfSriastradh 8103b705cfSriastradhmov (16) g74.16<1>UW g32.0<8,8,1>UW {align1 compr}; 8203b705cfSriastradhmov (16) g76.16<1>UW g34.0<8,8,1>UW {align1 compr}; 8303b705cfSriastradhmov (16) g78.16<1>UW g36.0<8,8,1>UW {align1 compr}; 8403b705cfSriastradhmov (16) g80.16<1>UW g38.0<8,8,1>UW {align1 compr}; 8503b705cfSriastradh 8603b705cfSriastradhadd (1) ip g21.0<1,1,1>UD 0x40UD {align1}; //jump to the lib to add the reference and idct data 87