extern void DFObjFiniDbgInfo( offset codesize ) { /******************************/ segment_id old; offset here; back_handle bck; if( _IsModel( DBG_LOCALS | DBG_TYPES ) ) { bck = Comp_High; if( bck != NULL ){ old = SetOP( AskCodeSeg() ); OutLabel( bck->lbl ); SetOP( old ); BEFreeBack( bck ); Comp_High = NULL; } DWEndCompileUnit( Client ); DWFini( Client ); old = SetOP( UnitSize->segment ); here = AskLocation(); SetLocation( UnitSize->offset ); DataLong( codesize ); SetLocation( here ); SetOP( old ); FiniSegBck(); } }
extern void DataAlign( unsigned_32 align ) { /**********************************************/ offset curr_loc; uint modulus; curr_loc = AskLocation(); modulus = curr_loc % align; if( modulus != 0 ) { if( AskSegBlank( AskOP() ) == false ) { IterBytes( (offset)( align - modulus ), 0 ); } else { IncLocation( align - modulus ); } } }
extern void DFSegRange( void ) { /****************************/ /* do arange for the current segment */ back_handle bck; offset off; offset size; if( !_IsModel( DBG_LOCALS | DBG_TYPES ) )return; size = AskMaxSize(); if( size > 0 ) { bck = MakeLabel(); off = AskLocation(); SetLocation( 0 ); DataLabel( bck->lbl ); SetLocation( off ); ARange = bck; DWAddress( Client, size ); BEFreeBack( bck ); } }