@@ -1177,12 +1177,12 @@ G4_InstSend *IR_Builder::Create_SplitSend_Inst_For_RTWrite(G4_Predicate *pred,
11771177 option, msgDesc, extDescOpnd);
11781178}
11791179
1180- // create a dcl for MRF, size in UD is given
1181- G4_Declare* IR_Builder::Create_MRF_Dcl ( unsigned num_elt, G4_Type type )
1180+ // create a declare for send payload
1181+ G4_Declare* IR_Builder::createSendPayloadDcl ( unsigned num_elt, G4_Type type )
11821182{
11831183 const char * name = getNameString (mem, 16 , " M%u" , ++num_general_dcl);
1184- unsigned short numRow = ( num_elt * G4_Type_Table[type].byteSize - 1 ) / GENX_MRF_REG_SIZ + 1 ;
1185- unsigned short numElt = ( numRow == 1 ) ? num_elt : (GENX_MRF_REG_SIZ /G4_Type_Table[type].byteSize );
1184+ unsigned short numRow = ( num_elt * G4_Type_Table[type].byteSize - 1 ) / GENX_GRF_REG_SIZ + 1 ;
1185+ unsigned short numElt = ( numRow == 1 ) ? num_elt : (GENX_GRF_REG_SIZ /G4_Type_Table[type].byteSize );
11861186 G4_Declare *dcl = createDeclareNoLookup (
11871187 name,
11881188 G4_GRF,
@@ -1191,7 +1191,7 @@ G4_Declare* IR_Builder::Create_MRF_Dcl( unsigned num_elt, G4_Type type )
11911191 type);
11921192 return dcl;
11931193}
1194- // create mov(8) mrf, r0
1194+
11951195void IR_Builder::Create_MOVR0_Inst ( G4_Declare* dcl, short regOff, short subregOff, bool use_nomask )
11961196{
11971197 G4_DstRegRegion dst1 (
@@ -1273,8 +1273,8 @@ void IR_Builder::Create_MOV_Inst(
12731273 0 );
12741274}
12751275
1276- // create multiple MOV inst for send src --> MRF if there are more than 64 byte data in src .
1277- // dcl: decl for MRF
1276+ // send payload preparation .
1277+ // dcl: decl for send payload
12781278// num_dword: number of DW to send
12791279// src_opnd: send src, its size may be several GRFs
12801280void IR_Builder::Create_MOV_Send_Src_Inst (
@@ -1303,7 +1303,7 @@ void IR_Builder::Create_MOV_Send_Src_Inst(
13031303 if ( scalar_src && src_opnd->getType () != Type_UD ){
13041304 // change the type of dst dcl to src type
13051305 remained_dword = num_dword * ( G4_Type_Table[Type_UD].byteSize /G4_Type_Table[src_opnd->getType ()].byteSize );
1306- dst_dcl = Create_MRF_Dcl (remained_dword, src_opnd->getType ());
1306+ dst_dcl = createSendPayloadDcl (remained_dword, src_opnd->getType ());
13071307 dst_dcl->setAliasDeclare ( dcl, regoff * G4_GRF_REG_NBYTES + subregoff * G4_Type_Table[Type_UD].byteSize );
13081308 dst_regoff = 0 ;
13091309 dst_subregoff = 0 ;
@@ -1343,7 +1343,6 @@ void IR_Builder::Create_MOV_Send_Src_Inst(
13431343 {
13441344 if ( remained_dword >= 32 )
13451345 {
1346- // mov(16) mrf src
13471346 execsize = 32 ;
13481347 }
13491348 else if ( remained_dword >= 16 )
@@ -1369,7 +1368,6 @@ void IR_Builder::Create_MOV_Send_Src_Inst(
13691368 {
13701369 if ( remained_dword >= 16 )
13711370 {
1372- // mov(16) mrf src
13731371 execsize = 16 ;
13741372 }
13751373 else if ( remained_dword >= 8 )
@@ -1425,30 +1423,31 @@ void IR_Builder::Create_MOV_Send_Src_Inst(
14251423 true );
14261424
14271425 // update offset in decl
1428- if ( remained_dword >= execsize ) {
1426+ if ( remained_dword >= execsize) {
14291427 remained_dword -= execsize;
1430- if ( execsize * dst_dcl->getElemSize () == 2 * G4_GRF_REG_NBYTES ){
1431- // mov(16) mrf src
1428+ if (execsize * dst_dcl->getElemSize () == 2 * G4_GRF_REG_NBYTES) {
14321429 dst_regoff += 2 ;
1433- if ( !scalar_src ) {
1430+ if ( !scalar_src) {
14341431 src_regoff += 2 ;
14351432 }
1436- }else if ( execsize * dst_dcl->getElemSize () == G4_GRF_REG_NBYTES ){
1433+ }
1434+ else if (execsize * dst_dcl->getElemSize () == G4_GRF_REG_NBYTES) {
14371435 dst_regoff += 1 ;
1438- if ( !scalar_src ) {
1436+ if ( !scalar_src) {
14391437 src_regoff += 1 ;
14401438 }
1441- }else {
1439+ }
1440+ else {
14421441 dst_subregoff += execsize;
1443- if ( dst_subregoff > (G4_GRF_REG_NBYTES/ dst_dcl->getElemSize ()) ) {
1442+ if ( dst_subregoff > (G4_GRF_REG_NBYTES / dst_dcl->getElemSize ())) {
14441443 dst_regoff++;
1445- dst_subregoff -= G4_GRF_REG_NBYTES/ dst_dcl->getElemSize ();
1444+ dst_subregoff -= G4_GRF_REG_NBYTES / dst_dcl->getElemSize ();
14461445 }
1447- if ( !scalar_src ) {
1446+ if ( !scalar_src) {
14481447 src_subregoff += execsize;
1449- if ( src_subregoff > (short )(G4_GRF_REG_NBYTES/ G4_Type_Table[Type_UD].byteSize ) ) {
1448+ if ( src_subregoff > (short )(G4_GRF_REG_NBYTES / G4_Type_Table[Type_UD].byteSize )) {
14501449 src_regoff++;
1451- src_subregoff -= G4_GRF_REG_NBYTES/ G4_Type_Table[Type_UD].byteSize ;
1450+ src_subregoff -= G4_GRF_REG_NBYTES / G4_Type_Table[Type_UD].byteSize ;
14521451 }
14531452 }
14541453 }
0 commit comments