Ejemplo n.º 1
0
void DgUninitBytes(             // DATA GENERATE UNINIT BYTES
    target_size_t size )        // - number of bytes
{
    if( size == TARGET_UINT_MAX+1 ) {
        size /= 2;
        DGUBytes( size );
        DGUBytes( size );
    } else {
        DGUBytes( size );
    }
}
Ejemplo n.º 2
0
void DgUninitBytes(             // DATA GENERATE UNINIT BYTES
    target_size_t size )        // - number of bytes
{
#if ( _CPU == 8086 )
    if( size == TARGET_UINT_MAX + 1 ) {
        size /= 2;
        DGUBytes( size );
        DGUBytes( size );
    } else {
        DGUBytes( size );
    }
#else
    DGUBytes( size );
#endif
}
Ejemplo n.º 3
0
void    BGProcDecl( cg_sym_handle sym, type_def *tipe )
/*****************************************************/
{
    hw_reg_set          reg;
    name                *temp;
    type_class_def      type_class;
    segment_id          old_segid;
    label_handle        lbl;

    SaveTargetModel = TargetModel;
    type_class = AddCallBlock( sym, tipe );
    if( tipe != TypeNone ) {
        if( type_class == XX ) {
            if( CurrProc->state.attr & ROUTINE_ALLOCS_RETURN ) {
                old_segid = SetOP( AskBackSeg() );
                lbl = AskForNewLabel();
                DataLabel( lbl );
                DGUBytes( tipe->length );
                CurrProc->targ.return_points = (name *)SAllocMemory( lbl, 0, CG_LBL, TypeClass( tipe ), tipe->length );
                SetOP( old_segid );
            } else {
                reg = CurrProc->state.return_reg;
                if( HW_CEqual( reg, HW_EMPTY ) ) {
                    temp = DoParmDecl( NULL, TypeInteger, HW_EMPTY );
                } else {
                    temp = AllocTemp( WD );
                    temp->v.usage |= USE_IN_ANOTHER_BLOCK;
                    AddIns( MakeMove( AllocRegName( reg ), temp, WD ) );
                    HW_TurnOn( CurrProc->state.parm.used, reg );
                }
                CurrProc->targ.return_points = temp;
            }
        }
    }
    if( CurrProc->state.attr & ROUTINE_FARSS ) {
        TargetModel |= FLOATING_SS;
    }
}