void DgAlignSymbol( // ALIGN SYMBOL TO CORRECT BOUNDARY SYMBOL sym ) // - symbol to align { target_size_t adjust; fe_seg_id segid; segid = sym->segid; adjust = SegmentAdjust( segid, DGTell(), SegmentAlignment( sym ) ); alignInSegment( adjust, segid ); }
static target_offset_t cgSegIdAlign( SYMBOL sym, type_flag flags ) /****************************************************************/ { target_offset_t align; if( flags & TF1_HUGE ) { align = 16; } else { align = SegmentAlignment( sym ); } return( align ); }
void DgSymbolDefInit( // DATA GENERATE SYMBOL (DEFAULT DATA) SYMBOL sym ) // - the symbol { segment_id old_seg; // - old segment segment_id seg_id; // - symbol segment target_size_t size; // - size of symbol seg_id = FESegID( sym ); old_seg = BESetSeg( seg_id ); DgAlignSegment( seg_id, SegmentAlignment( sym->sym_type ) ); CgBackGenLabel( sym ); size = CgMemorySize( sym->sym_type ); if( sym->segid == SEG_BSS ) { DgUninitBytes( size ); } else { DgInitBytes( size, 0 ); } BESetSeg( old_seg ); }