cssymbol.cpp

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C++ 代码 · 共 682 行 · 第 1/2 页

CPP
682
字号
                           * (cs_bprel32 *) (ptr+sizeof(s_common)),
                           ptr + sizeof(s_bprel32),
                           GetVarLength(*(unsigned_8 *)ptr,sizeof(cs_bprel32)));
}

SymbolStruct* CSLData32::Construct( const char* ptr )
/***************************************************/
{
    return new CSLData32 ( * (s_common *) ptr,
                           * (cs_ldata32 *) (ptr+sizeof(s_common)),
                            ptr + sizeof(s_ldata32),
                            GetVarLength(*(unsigned_8 *)ptr,sizeof(cs_ldata32)));
}

SymbolStruct* CSPub32::Construct( const char* ptr )
/*************************************************/
{
    return new CSPub32 ( * (s_common *) ptr,
                         * (cs_pub32 *) (ptr+sizeof(s_common)),
                         ptr + sizeof(s_pub32),
                         GetVarLength(*(unsigned_8 *)ptr,sizeof(cs_pub32)));
}

SymbolStruct* CSLProc32::Construct( const char* ptr )
/***************************************************/
{
    return new CSLProc32 ( * (s_common *) ptr,
                           * (cs_lproc32 *) (ptr+sizeof(s_common)),
                           ptr + sizeof(s_lproc32),
                           GetVarLength(*(unsigned_8 *)ptr,sizeof(cs_lproc32)));
}

SymbolStruct* CSThunk32::Construct( const char* ptr )
/***************************************************/
{
    return new CSThunk32 ( * (s_common *) ptr,
                           * (cs_thunk32 *) (ptr+sizeof(s_common)),
                           ptr + sizeof(s_thunk32),
                           GetVarLength(*(unsigned_8 *)ptr,sizeof(cs_thunk32)));
}

SymbolStruct* CSBlock32::Construct( const char* ptr )
/***************************************************/
{
    return new CSBlock32 ( * (s_common *) ptr,
                           * (cs_block32 *) (ptr+sizeof(s_common)),
                           ptr + sizeof(s_block32),
                           GetVarLength(*(unsigned_8 *)ptr,sizeof(cs_block32)));
}

SymbolStruct* CSWith32::Construct( const char* ptr )
/**************************************************/
{
    return new CSWith32 ( * (s_common *) ptr,
                          * (cs_with32 *) (ptr+sizeof(s_common)),
                          ptr + sizeof(s_with32) );
}

SymbolStruct* CSLabel32::Construct( const char* ptr )
/***************************************************/
{
    return new CSLabel32 ( * (s_common *) ptr,
                           * (cs_label32 *) (ptr+sizeof(s_common)),
                           ptr + sizeof(s_label32),
                           GetVarLength(*(unsigned_8 *)ptr,sizeof(cs_label32)));
}

SymbolStruct* CSCExModel32::Construct( const char* ptr )
/******************************************************/
{
    return new CSCExModel32 ( * (s_common *) ptr,
                              * (cs_cexmodel32 *) (ptr+sizeof(s_common)),
                              ptr + sizeof(s_cexmodel32),
                              GetVarLength(*(unsigned_8 *)ptr,sizeof(cs_cexmodel32)));
}

SymbolStruct* CSVftPath32::Construct( const char* ptr )
/*****************************************************/
{
    return new CSVftPath32 ( * (s_common *) ptr,
                             * (cs_vftpath32 *) (ptr+sizeof(s_common)) );
}

SymbolStruct* CSRegRel32::Construct( const char* ptr )
/****************************************************/
{
    return new CSRegRel32 ( * (s_common *) ptr,
                            * (cs_regrel32 *) (ptr+sizeof(s_common)),
                            ptr + sizeof(s_regrel32),
                            GetVarLength(*(unsigned_8 *)ptr,sizeof(cs_regrel32)));
}

SymbolStruct* CSLThread32::Construct( const char* ptr )
/*****************************************************/
{
    return new CSLThread32 ( * (s_common *) ptr,
                             * (cs_lthread32 *) (ptr+sizeof(s_common)),
                             ptr + sizeof(s_lthread32),
                             GetVarLength(*(unsigned_8 *)ptr,sizeof(cs_lthread32)));
}

void SymbolStruct::Put( ExeMaker& eMaker ) const
/**********************************************/
{
    eMaker.DumpToExe(_length);
    eMaker.DumpToExe(_leaf);
    DerivedPut(eMaker);
    eMaker.DumpToExe(_namePlusVar);
    if ( _pad > 0 ) {
        eMaker.DumpToExe( _padTable[_pad], _pad );
    }
}

void CSCompile::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe( &_compile, sizeof(cs_compile) );
    eMaker.DumpToExe( _version, _verlen );
}

void CSRegister::DerivedPut( ExeMaker& eMaker ) const
/***************************************************/
{
    eMaker.DumpToExe(&_register,sizeof(cs_register));
}

void CSConstant::DerivedPut( ExeMaker& eMaker ) const
/***************************************************/
{
    eMaker.DumpToExe(&_constant, sizeof(cs_constant));
    eMaker.DumpToExe(_value);
}

void CSUdt::DerivedPut( ExeMaker& eMaker ) const
/**********************************************/
{
    eMaker.DumpToExe(&_udt, sizeof(cs_udt));
}

void CSStartSearch::DerivedPut( ExeMaker& eMaker ) const
/******************************************************/
{
    eMaker.DumpToExe(&_ssearch,sizeof(cs_ssearch));
}

void CSObjName::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_objName,sizeof(cs_objname));
}

void CSCobolUdt::DerivedPut( ExeMaker& eMaker ) const
/***************************************************/
{
    eMaker.DumpToExe(&_cobolUdt,sizeof(cs_coboludt));
}

void CSManyReg::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_manyReg,sizeof(cs_manyreg));
    eMaker.DumpToExe(_regList);
}

void CSReturn::DerivedPut( ExeMaker& eMaker ) const
/*************************************************/
{
    eMaker.DumpToExe(&_return,sizeof(cs_return));
    eMaker.DumpToExe(_data);
}

void CSEntryThis::DerivedPut( ExeMaker& eMaker ) const
/****************************************************/
{
    _symPtr -> Put(eMaker);
}

void CSBPRel16::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_bpRel16,sizeof(cs_bprel16));
}

void CSLData16::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_lData16,sizeof(cs_ldata16));
}

void CSPub16::DerivedPut( ExeMaker& eMaker ) const
/************************************************/
{
    eMaker.DumpToExe(&_pub16,sizeof(cs_pub16));
}

void CSLProc16::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_lProc16,sizeof(cs_lproc16));
}

void CSThunk16::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_thunk16,sizeof(cs_thunk16));
}

void CSBlock16::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_block16,sizeof(cs_block16));
}

void CSWith16::DerivedPut( ExeMaker& eMaker ) const
/*************************************************/
{
    eMaker.DumpToExe(&_with16,sizeof(cs_with16));
}

void CSLabel16::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_label16,sizeof(cs_label16));
}

void CSCExModel16::DerivedPut( ExeMaker& eMaker ) const
/*****************************************************/
{
    eMaker.DumpToExe(&_cExModel16,sizeof(cs_cexmodel16));
    eMaker.DumpToExe(_variant);
}

void CSVftPath16::DerivedPut( ExeMaker& eMaker ) const
/****************************************************/
{
    eMaker.DumpToExe(&_vftPath16,sizeof(cs_vftpath16));
}

void CSRegRel16::DerivedPut( ExeMaker& eMaker ) const
/***************************************************/
{
    eMaker.DumpToExe(&_regRel16,sizeof(cs_regrel16));
}

void CSBPRel32::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_bpRel32,sizeof(cs_bprel32));
}

void CSLData32::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_lData32,sizeof(cs_ldata32));
}

void CSPub32::DerivedPut( ExeMaker& eMaker ) const
/************************************************/
{
    eMaker.DumpToExe(&_pub32,sizeof(cs_pub32));
}

void CSLProc32::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_lProc32,sizeof(cs_lproc32));
}

void CSThunk32::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_thunk32,sizeof(cs_thunk32));
}

void CSBlock32::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_block32,sizeof(cs_block32));
}

void CSWith32::DerivedPut( ExeMaker& eMaker ) const
/*************************************************/
{
    eMaker.DumpToExe(&_with32,sizeof(cs_with32));
}

void CSLabel32::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_label32,sizeof(cs_label32));
}

void CSCExModel32::DerivedPut( ExeMaker& eMaker ) const
/*****************************************************/
{
    eMaker.DumpToExe(&_cExModel32,sizeof(cs_cexmodel32));
    eMaker.DumpToExe(_variant);
}

void CSVftPath32::DerivedPut( ExeMaker& eMaker ) const
/****************************************************/
{
    eMaker.DumpToExe(&_vftPath32,sizeof(cs_vftpath32));
}

void CSRegRel32::DerivedPut( ExeMaker& eMaker ) const
/***************************************************/
{
    eMaker.DumpToExe(&_regRel32,sizeof(cs_regrel32));
}

void CSLThread32::DerivedPut( ExeMaker& eMaker ) const
/****************************************************/
{
    eMaker.DumpToExe(&_lThread32,sizeof(cs_lthread32));
}

void CSProcRef::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(_checkSum);
    eMaker.DumpToExe(_symOffset);
    eMaker.DumpToExe( (unsigned_16) _module);
}

void CSDataRef::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(_checkSum);
    eMaker.DumpToExe(_symOffset);
    eMaker.DumpToExe( (unsigned_16) _module);
}

void CSPageAlign::DerivedPut( ExeMaker& eMaker ) const
/****************************************************/
{
    for ( uint i = 0; i < _padLength; i++ ) {
        eMaker.DumpToExe((unsigned_8) _padValue);
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?