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 + -
显示快捷键?