|
@@ -214,7 +214,7 @@ void disassem(int pass, Function * ppProc)
|
|
|
for( ICODE &icode : pc)
|
|
|
{
|
|
|
LLInst *ll=icode.ll();
|
|
|
- if (ll->isLlFlag(I) && ! ll->isLlFlag(JMP_ICODE) && JmpInst(ll->opcode))
|
|
|
+ if (ll->testFlags(I) && ! ll->testFlags(JMP_ICODE) && JmpInst(ll->opcode))
|
|
|
{
|
|
|
/* Replace the immediate operand with an icode index */
|
|
|
iICODE labTgt=pc.labelSrch(ll->src.op());
|
|
@@ -222,13 +222,13 @@ void disassem(int pass, Function * ppProc)
|
|
|
{
|
|
|
ll->src.SetImmediateOp(labTgt->loc_ip);
|
|
|
/* This icode is the target of a jump */
|
|
|
- labTgt->ll()->SetLlFlag(TARGET);
|
|
|
- ll->SetLlFlag(JMP_ICODE); /* So its not done twice */
|
|
|
+ labTgt->ll()->setFlags(TARGET);
|
|
|
+ ll->setFlags(JMP_ICODE); /* So its not done twice */
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
/* This jump cannot be linked to a label */
|
|
|
- ll->SetLlFlag(NO_LABEL);
|
|
|
+ ll->setFlags(NO_LABEL);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -276,16 +276,16 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
* Do not try to display NO_CODE entries or synthetic instructions,
|
|
|
* other than JMPs, that have been introduced for def/use analysis. */
|
|
|
if ((option.asm1) &&
|
|
|
- ( _IcLL.isLlFlag(NO_CODE) ||
|
|
|
- (_IcLL.isLlFlag(SYNTHETIC) && (_IcLL.opcode != iJMP))))
|
|
|
+ ( _IcLL.testFlags(NO_CODE) ||
|
|
|
+ (_IcLL.testFlags(SYNTHETIC) && (_IcLL.opcode != iJMP))))
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
- else if (_IcLL.isLlFlag(NO_CODE))
|
|
|
+ else if (_IcLL.testFlags(NO_CODE))
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
- if (_IcLL.isLlFlag(TARGET | CASE))
|
|
|
+ if (_IcLL.testFlags(TARGET | CASE))
|
|
|
{
|
|
|
if (pass == 3)
|
|
|
cCode.appendCode("\n"); /* Print to c code buffer */
|
|
@@ -294,7 +294,7 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
}
|
|
|
|
|
|
/* Find next instruction label and print hex bytes */
|
|
|
- if (_IcLL.isLlFlag(SYNTHETIC))
|
|
|
+ if (_IcLL.testFlags(SYNTHETIC))
|
|
|
nextInst = _IcLL.label;
|
|
|
else
|
|
|
{
|
|
@@ -321,7 +321,7 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
{
|
|
|
lab_contents << ':'; /* Also removes the null */
|
|
|
}
|
|
|
- else if (_IcLL.isLlFlag(TARGET)) /* Symbols override Lnn labels */
|
|
|
+ else if (_IcLL.testFlags(TARGET)) /* Symbols override Lnn labels */
|
|
|
{
|
|
|
/* Print label */
|
|
|
if (pl.count(icode_iter.loc_ip)==0)
|
|
@@ -332,7 +332,7 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
}
|
|
|
oper_stream<< lab_contents.str();
|
|
|
}
|
|
|
- if (_IcLL.opcode == iSIGNEX && _IcLL.isLlFlag(B))
|
|
|
+ if (_IcLL.opcode == iSIGNEX && _IcLL.testFlags(B))
|
|
|
{
|
|
|
_IcLL.opcode = iCBW;
|
|
|
}
|
|
@@ -342,7 +342,7 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
{
|
|
|
case iADD: case iADC: case iSUB: case iSBB: case iAND: case iOR:
|
|
|
case iXOR: case iTEST: case iCMP: case iMOV: case iLEA: case iXCHG:
|
|
|
- strDst(oper_stream,_IcLL.GetLlFlag(), _IcLL.dst);
|
|
|
+ strDst(oper_stream,_IcLL.getFlag(), _IcLL.dst);
|
|
|
strSrc(oper_stream,_IcLL);
|
|
|
break;
|
|
|
|
|
@@ -352,42 +352,42 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
|
|
|
case iSAR: case iSHL: case iSHR: case iRCL: case iRCR: case iROL:
|
|
|
case iROR:
|
|
|
- strDst(oper_stream,_IcLL.GetLlFlag() | I, _IcLL.dst);
|
|
|
- if(_IcLL.isLlFlag(I))
|
|
|
+ strDst(oper_stream,_IcLL.getFlag() | I, _IcLL.dst);
|
|
|
+ if(_IcLL.testFlags(I))
|
|
|
strSrc(oper_stream,_IcLL);
|
|
|
else
|
|
|
oper_stream<<", cl";
|
|
|
break;
|
|
|
|
|
|
case iINC: case iDEC: case iNEG: case iNOT: case iPOP:
|
|
|
- strDst(oper_stream,_IcLL.GetLlFlag() | I, _IcLL.dst);
|
|
|
+ strDst(oper_stream,_IcLL.getFlag() | I, _IcLL.dst);
|
|
|
break;
|
|
|
|
|
|
case iPUSH:
|
|
|
- if (_IcLL.isLlFlag(I))
|
|
|
+ if (_IcLL.testFlags(I))
|
|
|
{
|
|
|
oper_stream<<strHex(_IcLL.src.op());
|
|
|
// strcpy(p + WID_PTR, strHex(pIcode->ll()->immed.op));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- strDst(oper_stream,_IcLL.GetLlFlag() | I, _IcLL.dst);
|
|
|
+ strDst(oper_stream,_IcLL.getFlag() | I, _IcLL.dst);
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case iDIV: case iIDIV: case iMUL: case iIMUL: case iMOD:
|
|
|
- if (_IcLL.isLlFlag(I))
|
|
|
+ if (_IcLL.testFlags(I))
|
|
|
{
|
|
|
- strDst(oper_stream,_IcLL.GetLlFlag(), _IcLL.dst) <<", ";
|
|
|
- formatRM(oper_stream, _IcLL.GetLlFlag(), _IcLL.src);
|
|
|
+ strDst(oper_stream,_IcLL.getFlag(), _IcLL.dst) <<", ";
|
|
|
+ formatRM(oper_stream, _IcLL.getFlag(), _IcLL.src);
|
|
|
strSrc(oper_stream,_IcLL);
|
|
|
}
|
|
|
else
|
|
|
- strDst(oper_stream,_IcLL.GetLlFlag() | I, _IcLL.src);
|
|
|
+ strDst(oper_stream,_IcLL.getFlag() | I, _IcLL.src);
|
|
|
break;
|
|
|
|
|
|
case iLDS: case iLES: case iBOUND:
|
|
|
- strDst(oper_stream,_IcLL.GetLlFlag(), _IcLL.dst)<<", dword ptr";
|
|
|
+ strDst(oper_stream,_IcLL.getFlag(), _IcLL.dst)<<", dword ptr";
|
|
|
strSrc(oper_stream,_IcLL,true);
|
|
|
break;
|
|
|
|
|
@@ -409,12 +409,12 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (_IcLL.isLlFlag(NO_LABEL))
|
|
|
+ if (_IcLL.testFlags(NO_LABEL))
|
|
|
{
|
|
|
//strcpy(p + WID_PTR, strHex(pIcode->ll()->immed.op));
|
|
|
oper_stream<<strHex(_IcLL.src.op());
|
|
|
}
|
|
|
- else if (_IcLL.isLlFlag(I) )
|
|
|
+ else if (_IcLL.testFlags(I) )
|
|
|
{
|
|
|
j = _IcLL.src.op();
|
|
|
if (pl.count(j)==0) /* Forward jump */
|
|
@@ -439,7 +439,7 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
break;
|
|
|
|
|
|
case iCALL: case iCALLF:
|
|
|
- if (_IcLL.isLlFlag(I))
|
|
|
+ if (_IcLL.testFlags(I))
|
|
|
{
|
|
|
if((_IcLL.opcode == iCALL))
|
|
|
oper_stream<< "near";
|
|
@@ -462,7 +462,7 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
break;
|
|
|
|
|
|
case iRET: case iRETF: case iINT:
|
|
|
- if (_IcLL.isLlFlag(I))
|
|
|
+ if (_IcLL.testFlags(I))
|
|
|
{
|
|
|
oper_stream<<strHex(_IcLL.src.op());
|
|
|
}
|
|
@@ -479,9 +479,9 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
{
|
|
|
bool is_dx_src=(_IcLL.opcode == iOUTS || _IcLL.opcode == iREP_OUTS);
|
|
|
if(is_dx_src)
|
|
|
- oper_stream<<"dx, "<<szPtr[_IcLL.GetLlFlag() & B];
|
|
|
+ oper_stream<<"dx, "<<szPtr[_IcLL.getFlag() & B];
|
|
|
else
|
|
|
- oper_stream<<szPtr[_IcLL.GetLlFlag() & B];
|
|
|
+ oper_stream<<szPtr[_IcLL.getFlag() & B];
|
|
|
if (_IcLL.opcode == iLODS ||
|
|
|
_IcLL.opcode == iREP_LODS ||
|
|
|
_IcLL.opcode == iOUTS ||
|
|
@@ -496,7 +496,7 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
oper_stream<<":[si]";
|
|
|
}
|
|
|
else
|
|
|
- oper_stream<<(_IcLL.GetLlFlag() & B)? "B": "W";
|
|
|
+ oper_stream<<(_IcLL.getFlag() & B)? "B": "W";
|
|
|
break;
|
|
|
|
|
|
case iXLAT:
|
|
@@ -508,13 +508,13 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
break;
|
|
|
|
|
|
case iIN:
|
|
|
- oper_stream<<(_IcLL.GetLlFlag() & B)?"al, ": "ax, ";
|
|
|
- oper_stream<<(_IcLL.isLlFlag(I))? strHex(_IcLL.src.op()): "dx";
|
|
|
+ oper_stream<<(_IcLL.getFlag() & B)?"al, ": "ax, ";
|
|
|
+ oper_stream<<(_IcLL.testFlags(I))? strHex(_IcLL.src.op()): "dx";
|
|
|
break;
|
|
|
|
|
|
case iOUT:
|
|
|
- oper_stream<<(_IcLL.isLlFlag(I))? strHex(_IcLL.src.op()): "dx";
|
|
|
- oper_stream<<(_IcLL.GetLlFlag() & B)?", al": ", ax";
|
|
|
+ oper_stream<<(_IcLL.testFlags(I))? strHex(_IcLL.src.op()): "dx";
|
|
|
+ oper_stream<<(_IcLL.getFlag() & B)?", al": ", ax";
|
|
|
break;
|
|
|
|
|
|
default:
|
|
@@ -522,7 +522,7 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
}
|
|
|
|
|
|
/* Comments */
|
|
|
- if (_IcLL.isLlFlag(SYNTHETIC))
|
|
|
+ if (_IcLL.testFlags(SYNTHETIC))
|
|
|
{
|
|
|
fImpure = FALSE;
|
|
|
}
|
|
@@ -542,13 +542,13 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
{
|
|
|
result_stream <<"; "<<cbuf.str();
|
|
|
}
|
|
|
- else if (fImpure || (_IcLL.isLlFlag(SWITCH | CASE | SEG_IMMED | IMPURE | SYNTHETIC | TERMINATES)))
|
|
|
+ else if (fImpure || (_IcLL.testFlags(SWITCH | CASE | SEG_IMMED | IMPURE | SYNTHETIC | TERMINATES)))
|
|
|
{
|
|
|
- if (_IcLL.isLlFlag(CASE))
|
|
|
+ if (_IcLL.testFlags(CASE))
|
|
|
{
|
|
|
result_stream << ";Case l"<< _IcLL.caseTbl.numEntries;
|
|
|
}
|
|
|
- if (_IcLL.isLlFlag(SWITCH))
|
|
|
+ if (_IcLL.testFlags(SWITCH))
|
|
|
{
|
|
|
result_stream << ";Switch ";
|
|
|
}
|
|
@@ -556,15 +556,15 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
{
|
|
|
result_stream << ";Accessed as data ";
|
|
|
}
|
|
|
- if (_IcLL.isLlFlag(IMPURE))
|
|
|
+ if (_IcLL.testFlags(IMPURE))
|
|
|
{
|
|
|
result_stream << ";Impure operand ";
|
|
|
}
|
|
|
- if (_IcLL.isLlFlag(SEG_IMMED))
|
|
|
+ if (_IcLL.testFlags(SEG_IMMED))
|
|
|
{
|
|
|
result_stream << ";Segment constant";
|
|
|
}
|
|
|
- if (_IcLL.isLlFlag(TERMINATES))
|
|
|
+ if (_IcLL.testFlags(TERMINATES))
|
|
|
{
|
|
|
result_stream << ";Exit to DOS";
|
|
|
}
|
|
@@ -578,7 +578,7 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
if(pass==3)
|
|
|
{
|
|
|
/* output to .b code buffer */
|
|
|
- if (_IcLL.isLlFlag(SYNTHETIC))
|
|
|
+ if (_IcLL.testFlags(SYNTHETIC))
|
|
|
result_stream<<";Synthetic inst";
|
|
|
if (pass == 3) /* output to .b code buffer */
|
|
|
cCode.appendCode("%s\n", result_stream.str().c_str());
|
|
@@ -586,7 +586,7 @@ static void dis1Line(ICODE &icode_iter, int pass)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (not _IcLL.isLlFlag(SYNTHETIC) )
|
|
|
+ if (not _IcLL.testFlags(SYNTHETIC) )
|
|
|
{
|
|
|
/* output to .a1 or .a2 file */
|
|
|
fprintf (fp, "%03ld %06lX %s\n", icode_iter.loc_ip, _IcLL.label, result_stream.str().c_str());
|
|
@@ -670,12 +670,12 @@ static ostringstream &strSrc(ostringstream &os,const LLInst &l_ins,bool skip_com
|
|
|
static char buf[30] = {", "};
|
|
|
if(false==skip_comma)
|
|
|
os<<", ";
|
|
|
- if (l_ins.isLlFlag(I))
|
|
|
+ if (l_ins.testFlags(I))
|
|
|
os<<strHex(l_ins.src.op());
|
|
|
- else if (l_ins.isLlFlag(IM_SRC)) /* level 2 */
|
|
|
+ else if (l_ins.testFlags(IM_SRC)) /* level 2 */
|
|
|
os<<"dx:ax";
|
|
|
else
|
|
|
- formatRM(os, l_ins.GetLlFlag(), l_ins.src);
|
|
|
+ formatRM(os, l_ins.getFlag(), l_ins.src);
|
|
|
|
|
|
return os;
|
|
|
}
|
|
@@ -748,7 +748,7 @@ void flops(LLInst &pIcode,std::ostringstream &out)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- formatRM(out, pIcode.GetLlFlag(), pIcode.dst);
|
|
|
+ formatRM(out, pIcode.getFlag(), pIcode.dst);
|
|
|
}
|
|
|
else
|
|
|
{
|