void PragManyRegSets( // GET PRAGMA REGISTER SETS void ) { hw_reg_set buff[ MAXIMUM_PARMSETS ]; int i; hw_reg_set list; hw_reg_set *sets; list = PragRegList(); i = 0; while( !HW_CEqual( list, HW_EMPTY ) && ( i != MAXIMUM_PARMSETS ) ) { buff[ i++ ] = list; list = PragRegList(); } if( !HW_CEqual( list, HW_EMPTY ) ) { CErr1( ERR_TOO_MANY_PARM_SETS ); } HW_CAsgn( buff[i], HW_EMPTY ); i++; i *= sizeof( hw_reg_set ); sets = ( hw_reg_set * ) CMemAlloc( i ); memcpy( sets, buff, i ); if( !IsAuxParmsBuiltIn( CurrInfo->parms ) ) { CMemFree( CurrInfo->parms ); } CurrInfo->parms = sets; }
void freeAuxInfo( AUX_INFO *i ) // FREE ALL AUX INFO MEM { if( !IsAuxParmsBuiltIn( i->parms ) ) { CMemFree( i->parms ); } CMemFree( i->objname ); CMemFree( i->code ); }
static void copyParms( // COPY PARMS PORTION void ) { if( CurrInfo->parms != CurrAlias->parms ) { /* new parms have already been allocated */ return; } if( !IsAuxParmsBuiltIn( CurrInfo->parms ) ) { CurrInfo->parms = AuxParmDup( CurrInfo->parms ); } }
static void freeInfo( AUX_INFO *info ) { if( info->code != NULL ) { CMemFreePtr( &info->code ); } if( !IsAuxParmsBuiltIn( info->parms ) ) { CMemFreePtr( &info->parms ); } if( info->objname != NULL ) { CMemFreePtr( &info->objname ); } }
local void CopyParms( void ) /**************************/ { int i; hw_reg_set *regs; if( CurrInfo->parms != CurrAlias->parms ) return; if( IsAuxParmsBuiltIn( CurrInfo->parms ) ) return; for( i = 1, regs = CurrInfo->parms; !HW_CEqual( *regs, HW_EMPTY ); ++i, ++regs ) ; i *= sizeof( hw_reg_set ); regs = (hw_reg_set *)CMemAlloc( i ); memcpy( regs, CurrInfo->parms, i ); CurrInfo->parms = regs; }
static void FreeAuxInfo( aux_info *info ) { if( info->code != NULL ) { CMemFree( info->code ); info->code = NULL; } if( !IsAuxParmsBuiltIn( info->parms ) ) { CMemFree( info->parms ); info->parms = NULL; } #if _CPU == 370 if( info->linkage != &DefaultLinkage && info->linkage != &OSLinkage ) { if( info->linkage != NULL ) { CMemFree( info->linkage ); info->linkage = NULL; } } #endif if( info->objname != NULL ) { CMemFree( info->objname ); info->objname = NULL; } }