Fix FS:4 miswrite due to earlier changes for a constant displacement

This commit is contained in:
Kelly Wilson
2009-03-11 09:16:41 -06:00
parent 8bb206447f
commit 15a19c738f

View File

@@ -2181,9 +2181,11 @@ namespace AsmParserx8664
if ( operand->segmentPrefix != Reg_Invalid || operand->constDisplacement )
{
insnTemplate->printf ( "%d", operand->constDisplacement );
if ( operand->symbolDisplacement.dim )
{
insnTemplate->printf ( "%d", operand->constDisplacement );
insnTemplate->writebyte ( '+' );
}
//addOperand(fmt, Arg_Integer, newIntExp(operand->constDisplacement), asmcode);
if ( opInfo->operands[i] & Opr_Dest )
asmcode->clobbersMemory = 1;
@@ -2308,6 +2310,12 @@ namespace AsmParserx8664
}
if ( use_star )
insnTemplate->writebyte ( '*' );
if ( operand->segmentPrefix != Reg_Invalid || !(operand->constDisplacement))
{
insnTemplate->printf ( "%d", operand->constDisplacement );
if ( opInfo->operands[i] & Opr_Dest )
asmcode->clobbersMemory = 1;
}
if ( operand->baseReg != Reg_Invalid || operand->indexReg != Reg_Invalid )
{
insnTemplate->writebyte ( '(' );