1428d7b3dSmrg/* GRF allocation: 2428d7b3dSmrg g1~g30: constant buffer 3428d7b3dSmrg g1~g2:intra IQ matrix in UB format 4428d7b3dSmrg g3~g4:non intra IQ matrix in UB format 5428d7b3dSmrg g5~g20:IDCT table 6428d7b3dSmrg g32~g55:DCT data before IQ 7428d7b3dSmrg g56~g79:DCT data after IQ 8428d7b3dSmrg g84~g107: IDCT data after idct 9428d7b3dSmrg g82: thread payload backup 10428d7b3dSmrg g126.8: ip before jump to the lib 11428d7b3dSmrg*/ 12428d7b3dSmrgjmpi MOTION_FRAME_Y; 13428d7b3dSmrgjmpi MOTION_FRAME_UV; 14428d7b3dSmrgjmpi MOTION_FIELD_Y; 15428d7b3dSmrgjmpi MOTION_FIELD_UV; 16428d7b3dSmrgjmpi ADD_IDCT; 17428d7b3dSmrg 18428d7b3dSmrgmov (16) g84.0<1>W g33.0<16,16,1>W {align1}; 19428d7b3dSmrgmov (16) g85.0<1>W g34.0<16,16,1>W {align1}; 20428d7b3dSmrgmov (16) g86.0<1>W g35.0<16,16,1>W {align1}; 21428d7b3dSmrgmov (16) g87.0<1>W g36.0<16,16,1>W {align1}; 22428d7b3dSmrgmov (16) g88.0<1>W g37.0<16,16,1>W {align1}; 23428d7b3dSmrgmov (16) g89.0<1>W g38.0<16,16,1>W {align1}; 24428d7b3dSmrgmov (16) g90.0<1>W g39.0<16,16,1>W {align1}; 25428d7b3dSmrgmov (16) g91.0<1>W g40.0<16,16,1>W {align1}; 26428d7b3dSmrgmov (16) g92.0<1>W g41.0<16,16,1>W {align1}; 27428d7b3dSmrgmov (16) g93.0<1>W g42.0<16,16,1>W {align1}; 28428d7b3dSmrgmov (16) g94.0<1>W g43.0<16,16,1>W {align1}; 29428d7b3dSmrgmov (16) g95.0<1>W g44.0<16,16,1>W {align1}; 30428d7b3dSmrgmov (16) g96.0<1>W g45.0<16,16,1>W {align1}; 31428d7b3dSmrgmov (16) g97.0<1>W g46.0<16,16,1>W {align1}; 32428d7b3dSmrgmov (16) g98.0<1>W g47.0<16,16,1>W {align1}; 33428d7b3dSmrgmov (16) g99.0<1>W g48.0<16,16,1>W {align1}; 34428d7b3dSmrg 35428d7b3dSmrgmov (16) g100.0<1>W g49.0<16,16,1>W {align1}; 36428d7b3dSmrgmov (16) g101.0<1>W g50.0<16,16,1>W {align1}; 37428d7b3dSmrgmov (16) g102.0<1>W g51.0<16,16,1>W {align1}; 38428d7b3dSmrgmov (16) g103.0<1>W g52.0<16,16,1>W {align1}; 39428d7b3dSmrgmov (16) g104.0<1>W g53.0<16,16,1>W {align1}; 40428d7b3dSmrgmov (16) g105.0<1>W g54.0<16,16,1>W {align1}; 41428d7b3dSmrgmov (16) g106.0<1>W g55.0<16,16,1>W {align1}; 42428d7b3dSmrgmov (16) g107.0<1>W g56.0<16,16,1>W {align1}; 43428d7b3dSmrg 44428d7b3dSmrg//Y0 45428d7b3dSmrgand.nz (1) null g82.12<1,1,1>UW 0x20UW {align1}; 46428d7b3dSmrg(f0) jmpi block_y1; 47428d7b3dSmrgmov (8) g84.0<1>W 0W {align1}; 48428d7b3dSmrgmov (8) g85.0<1>W 0W {align1}; 49428d7b3dSmrgmov (8) g86.0<1>W 0W {align1}; 50428d7b3dSmrgmov (8) g87.0<1>W 0W {align1}; 51428d7b3dSmrgmov (8) g88.0<1>W 0W {align1}; 52428d7b3dSmrgmov (8) g89.0<1>W 0W {align1}; 53428d7b3dSmrgmov (8) g90.0<1>W 0W {align1}; 54428d7b3dSmrgmov (8) g91.0<1>W 0W {align1}; 55428d7b3dSmrg 56428d7b3dSmrg//Y1 57428d7b3dSmrgblock_y1: 58428d7b3dSmrgand.nz (1) null g82.12<1,1,1>UW 0x10UW {align1}; 59428d7b3dSmrg(f0) jmpi block_y2; 60428d7b3dSmrgmov (8) g84.16<1>W 0W {align1}; 61428d7b3dSmrgmov (8) g85.16<1>W 0W {align1}; 62428d7b3dSmrgmov (8) g86.16<1>W 0W {align1}; 63428d7b3dSmrgmov (8) g87.16<1>W 0W {align1}; 64428d7b3dSmrgmov (8) g88.16<1>W 0W {align1}; 65428d7b3dSmrgmov (8) g89.16<1>W 0W {align1}; 66428d7b3dSmrgmov (8) g90.16<1>W 0W {align1}; 67428d7b3dSmrgmov (8) g91.16<1>W 0W {align1}; 68428d7b3dSmrg 69428d7b3dSmrg//Y2 70428d7b3dSmrgblock_y2: 71428d7b3dSmrgand.nz (1) null g82.12<1,1,1>UW 0x08UW {align1}; 72428d7b3dSmrg(f0) jmpi block_y3; 73428d7b3dSmrgmov (8) g92.0<1>W 0W {align1}; 74428d7b3dSmrgmov (8) g93.0<1>W 0W {align1}; 75428d7b3dSmrgmov (8) g94.0<1>W 0W {align1}; 76428d7b3dSmrgmov (8) g95.0<1>W 0W {align1}; 77428d7b3dSmrgmov (8) g96.0<1>W 0W {align1}; 78428d7b3dSmrgmov (8) g97.0<1>W 0W {align1}; 79428d7b3dSmrgmov (8) g98.0<1>W 0W {align1}; 80428d7b3dSmrgmov (8) g99.0<1>W 0W {align1}; 81428d7b3dSmrg 82428d7b3dSmrg//Y3 83428d7b3dSmrgblock_y3: 84428d7b3dSmrgand.nz (1) null g82.12<1,1,1>UW 0x04UW {align1}; 85428d7b3dSmrg(f0) jmpi block_u; 86428d7b3dSmrgmov (8) g92.16<1>W 0W {align1}; 87428d7b3dSmrgmov (8) g93.16<1>W 0W {align1}; 88428d7b3dSmrgmov (8) g94.16<1>W 0W {align1}; 89428d7b3dSmrgmov (8) g95.16<1>W 0W {align1}; 90428d7b3dSmrgmov (8) g96.16<1>W 0W {align1}; 91428d7b3dSmrgmov (8) g97.16<1>W 0W {align1}; 92428d7b3dSmrgmov (8) g98.16<1>W 0W {align1}; 93428d7b3dSmrgmov (8) g99.16<1>W 0W {align1}; 94428d7b3dSmrg 95428d7b3dSmrg//U 96428d7b3dSmrgblock_u: 97428d7b3dSmrgand.nz (1) null g82.12<1,1,1>UW 0x02UW {align1}; 98428d7b3dSmrg(f0) jmpi block_v; 99428d7b3dSmrgmov (16) g100.0<1>W 0W {align1}; 100428d7b3dSmrgmov (16) g101.0<1>W 0W {align1}; 101428d7b3dSmrgmov (16) g102.0<1>W 0W {align1}; 102428d7b3dSmrgmov (16) g103.0<1>W 0W {align1}; 103428d7b3dSmrg 104428d7b3dSmrg//V 105428d7b3dSmrgblock_v: 106428d7b3dSmrgand.nz (1) null g82.12<1,1,1>UW 0x01UW {align1}; 107428d7b3dSmrg(f0) jmpi out; 108428d7b3dSmrgmov (16) g104.0<1>W 0W {align1}; 109428d7b3dSmrgmov (16) g105.0<1>W 0W {align1}; 110428d7b3dSmrgmov (16) g106.0<1>W 0W {align1}; 111428d7b3dSmrgmov (16) g107.0<1>W 0W {align1}; 112428d7b3dSmrg 113428d7b3dSmrgout: 114428d7b3dSmrgadd (1) ip g126.8<1,1,1>UD 0x20UD {align1}; //jump back 115428d7b3dSmrg 116428d7b3dSmrgMOTION_FRAME_Y: 117428d7b3dSmrginclude(`motion_frame_y_igd.g4i') 118428d7b3dSmrgadd (1) ip g126.8<1,1,1>UD 0x20UD {align1}; //jump back 119428d7b3dSmrg 120428d7b3dSmrgMOTION_FRAME_UV: 121428d7b3dSmrginclude(`motion_frame_uv_igd.g4i') 122428d7b3dSmrgadd (1) ip g126.8<1,1,1>UD 0x20UD {align1}; //jump back 123428d7b3dSmrg 124428d7b3dSmrgMOTION_FIELD_Y: 125428d7b3dSmrginclude(`motion_field_y_igd.g4i') 126428d7b3dSmrgadd (1) ip g126.8<1,1,1>UD 0x20UD {align1}; //jump back 127428d7b3dSmrg 128428d7b3dSmrgMOTION_FIELD_UV: 129428d7b3dSmrginclude(`motion_field_uv_igd.g4i') 130428d7b3dSmrgadd (1) ip g126.8<1,1,1>UD 0x20UD {align1}; //jump back 131428d7b3dSmrg 132428d7b3dSmrgADD_IDCT: 133428d7b3dSmrginclude(`addidct_igd.g4i') 134