dumpconf.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 459 行 · 第 1/2 页
C
459 行
if( Check(&name,HW_B27) ) { DumpLiteral( "B27" ); continue; }
if( Check(&name,HW_B28) ) { DumpLiteral( "B28" ); continue; }
if( Check(&name,HW_B29) ) { DumpLiteral( "B29" ); continue; }
if( Check(&name,HW_B30) ) { DumpLiteral( "B30" ); continue; }
if( Check(&name,HW_B31) ) { DumpLiteral( "B31" ); continue; }
if( Check(&name,HW_F0) ) { DumpLiteral( "F0" ); continue; }
if( Check(&name,HW_F1) ) { DumpLiteral( "F1" ); continue; }
if( Check(&name,HW_F2) ) { DumpLiteral( "F2" ); continue; }
if( Check(&name,HW_F3) ) { DumpLiteral( "F3" ); continue; }
if( Check(&name,HW_F4) ) { DumpLiteral( "F4" ); continue; }
if( Check(&name,HW_F5) ) { DumpLiteral( "F5" ); continue; }
if( Check(&name,HW_F6) ) { DumpLiteral( "F6" ); continue; }
if( Check(&name,HW_F7) ) { DumpLiteral( "F7" ); continue; }
if( Check(&name,HW_F8) ) { DumpLiteral( "F8" ); continue; }
if( Check(&name,HW_F9) ) { DumpLiteral( "F9" ); continue; }
if( Check(&name,HW_F10) ) { DumpLiteral( "F10" ); continue; }
if( Check(&name,HW_F11) ) { DumpLiteral( "F11" ); continue; }
if( Check(&name,HW_F12) ) { DumpLiteral( "F12" ); continue; }
if( Check(&name,HW_F13) ) { DumpLiteral( "F13" ); continue; }
if( Check(&name,HW_F14) ) { DumpLiteral( "F14" ); continue; }
if( Check(&name,HW_F15) ) { DumpLiteral( "F15" ); continue; }
if( Check(&name,HW_F16) ) { DumpLiteral( "F16" ); continue; }
if( Check(&name,HW_F17) ) { DumpLiteral( "F17" ); continue; }
if( Check(&name,HW_F18) ) { DumpLiteral( "F18" ); continue; }
if( Check(&name,HW_F19) ) { DumpLiteral( "F19" ); continue; }
if( Check(&name,HW_F20) ) { DumpLiteral( "F20" ); continue; }
if( Check(&name,HW_F21) ) { DumpLiteral( "F21" ); continue; }
if( Check(&name,HW_F22) ) { DumpLiteral( "F22" ); continue; }
if( Check(&name,HW_F23) ) { DumpLiteral( "F23" ); continue; }
if( Check(&name,HW_F24) ) { DumpLiteral( "F24" ); continue; }
if( Check(&name,HW_F25) ) { DumpLiteral( "F25" ); continue; }
if( Check(&name,HW_F26) ) { DumpLiteral( "F26" ); continue; }
if( Check(&name,HW_F27) ) { DumpLiteral( "F27" ); continue; }
if( Check(&name,HW_F28) ) { DumpLiteral( "F28" ); continue; }
if( Check(&name,HW_F29) ) { DumpLiteral( "F29" ); continue; }
if( Check(&name,HW_F30) ) { DumpLiteral( "F30" ); continue; }
if( Check(&name,HW_F31) ) { DumpLiteral( "F31" ); continue; }
#endif
#if 0
#if _TARGET & _TARG_PPC
if( Check(&name,HW_CTR) ) { DumpLiteral( "CTR" ); continue; }
if( Check(&name,HW_CR) ) { DumpLiteral( "CR" ); continue; }
if( Check(&name,HW_MQ) ) { DumpLiteral( "MQ" ); continue; }
if( Check(&name,HW_LR) ) { DumpLiteral( "LR" ); continue; }
#endif
#endif
#if _TARGET & ( _TARG_80386 | _TARG_IAPX86 )
if( Check(&name,HW_EAX)) { DumpLiteral("EAX"); continue; }
if( Check(&name,HW_EBX)) { DumpLiteral("EBX"); continue; }
if( Check(&name,HW_ECX)) { DumpLiteral("ECX"); continue; }
if( Check(&name,HW_EDX)) { DumpLiteral("EDX"); continue; }
if( Check(&name,HW_EDI)) { DumpLiteral("EDI"); continue; }
if( Check(&name,HW_ESI)) { DumpLiteral("ESI"); continue; }
if( Check(&name,HW_BP)) { DumpLiteral("EBP"); continue; }
if( Check(&name,HW_SP)) { DumpLiteral("ESP"); continue; }
if( Check(&name,HW_GS) ) { DumpLiteral( "GS"); continue; }
if( Check(&name,HW_FS) ) { DumpLiteral( "FS"); continue; }
if( Check(&name,HW_ES) ) { DumpLiteral( "ES"); continue; }
if( Check(&name,HW_DS) ) { DumpLiteral( "DS"); continue; }
if( Check(&name,HW_CS) ) { DumpLiteral( "CS"); continue; }
if( Check(&name,HW_SS) ) { DumpLiteral( "SS"); continue; }
if( Check(&name,HW_AX) ) { DumpLiteral( "AX"); continue; }
if( Check(&name,HW_BX) ) { DumpLiteral( "BX"); continue; }
if( Check(&name,HW_CX) ) { DumpLiteral( "CX"); continue; }
if( Check(&name,HW_DX) ) { DumpLiteral( "DX"); continue; }
if( Check(&name,HW_AL) ) { DumpLiteral( "AL"); continue; }
if( Check(&name,HW_BL) ) { DumpLiteral( "BL"); continue; }
if( Check(&name,HW_CL) ) { DumpLiteral( "CL"); continue; }
if( Check(&name,HW_DL) ) { DumpLiteral( "DL"); continue; }
if( Check(&name,HW_AH) ) { DumpLiteral( "AH"); continue; }
if( Check(&name,HW_BH) ) { DumpLiteral( "BH"); continue; }
if( Check(&name,HW_CH) ) { DumpLiteral( "CH"); continue; }
if( Check(&name,HW_DH) ) { DumpLiteral( "DH"); continue; }
if( Check(&name,HW_SI) ) { DumpLiteral( "SI"); continue; }
if( Check(&name,HW_DI) ) { DumpLiteral( "DI"); continue; }
if( Check(&name,HW_BP) ) { DumpLiteral( "BP"); continue; }
if( Check(&name,HW_SP) ) { DumpLiteral( "SP"); continue; }
if( Check(&name,HW_ST0) ) { DumpLiteral( "ST(0)"); continue; }
if( Check(&name,HW_ST1) ) { DumpLiteral( "ST(1)"); continue; }
if( Check(&name,HW_ST2) ) { DumpLiteral( "ST(2)"); continue; }
if( Check(&name,HW_ST3) ) { DumpLiteral( "ST(3)"); continue; }
if( Check(&name,HW_ST4) ) { DumpLiteral( "ST(4)"); continue; }
if( Check(&name,HW_ST5) ) { DumpLiteral( "ST(5)"); continue; }
if( Check(&name,HW_ST6) ) { DumpLiteral( "ST(6)"); continue; }
if( Check(&name,HW_ST7) ) { DumpLiteral( "ST(7)"); continue; }
#endif
break;
}
}
}
static void DumpRgSet( hw_reg_set *possible ) {
/**************************************************/
int i;
if( possible != NULL ) {
i = 0;
DumpLiteral( " Choices " );
while( !HW_CEqual( *possible, HW_EMPTY ) ) {
DumpRegName( *possible );
++ possible;
DumpLiteral( " " );
}
}
}
static void DumpInsRange( conflict_node *conf ) {
/***************************************************/
if( conf->ins_range.first != NULL ) {
DumpLiteral( " Instruction " );
DumpInt( conf->ins_range.first->id );
if( conf->ins_range.first != conf->ins_range.last
&& conf->ins_range.last != NULL ) {
DumpLiteral( " to Instruction " );
DumpInt( conf->ins_range.last->id );
}
}
}
extern void DumpPossible( byte idx ) {
/****************************************/
if( idx == RL_NUMBER_OF_SETS ) {
DumpLiteral( " Choices ANY" );
} else {
DumpRgSet( RegSets[ idx ] );
}
}
extern void DumpRegSet( hw_reg_set reg ) {
/********************************************/
DumpRegName( reg );
DumpNL();
}
extern void DumpAConf( conflict_node *conf ) {
/************************************************/
DumpOperand( conf->name );
DumpLiteral( " id " );
DumpGBit( &conf->id.out_of_block );
DumpLiteral( " " );
DumpLBit( &conf->id.within_block );
DumpPossible( conf->possible );
DumpNL();
DumpLiteral( " " );
DumpInsRange( conf );
DumpLiteral( " Start block " );
DumpPtr( conf->start_block );
DumpNL();
DumpLiteral( " Conflicts with " );
DumpGBit( &conf->with.out_of_block );
DumpLiteral( " " );
DumpLBit( &conf->with.within_block );
DumpLiteral( " " );
DumpRegName( conf->with.regs );
DumpNL();
DumpLiteral( " Constrained " );
DumpInt( conf->num_constrained );
DumpLiteral( " vs " );
DumpInt( conf->available );
DumpNL();
if( _Is( conf, SAVINGS_CALCULATED ) ) {
DumpLiteral( " Savings " );
DumpLong( conf->savings );
DumpNL();
}
if( _Is( conf, CONFLICT_ON_HOLD ) ) {
DumpLiteral( " On hold" );
DumpNL();
}
if( _Is( conf, CHANGES_OTHERS ) ) {
DumpLiteral( " Changes Others" );
DumpNL();
}
if( _Is( conf, NEEDS_SEGMENT ) ) {
DumpLiteral( " Needs segment" );
DumpNL();
}
if( _Is( conf, NEEDS_SEGMENT_SPLIT ) ) {
DumpLiteral( " Needs segment split" );
DumpNL();
}
if( _Is( conf, SEGMENT_SPLIT ) ) {
DumpLiteral( " Is segment split" );
DumpNL();
}
if( _Is( conf, NEEDS_INDEX ) ) {
DumpLiteral( " Needs index" );
DumpNL();
}
if( _Is( conf, NEEDS_INDEX_SPLIT ) ) {
DumpLiteral( " Needs index split" );
DumpNL();
}
if( _Is( conf, INDEX_SPLIT ) ) {
DumpLiteral( " Is index split" );
DumpNL();
}
}
extern void DumpConflicts() {
/*******************************/
conflict_node *conf;
DumpLiteral( "Conflict graph" );
DumpNL();
conf = ConfList;
while( conf != NULL ) {
DumpPtr( conf );
DumpLiteral( " " );
DumpAConf( conf );
conf = conf->next_conflict;
}
DumpNL();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?