diff --git a/gen/asm-x86-32.h b/gen/asm-x86-32.h index a43df78b..3b62d383 100644 --- a/gen/asm-x86-32.h +++ b/gen/asm-x86-32.h @@ -2055,6 +2055,17 @@ namespace AsmParserx8632 } use_star = opTakesLabel();//opInfo->takesLabel(); + + if ( operand->segmentPrefix != Reg_Invalid || operand->constDisplacement ) + { + insnTemplate->printf ( "%d", operand->constDisplacement ); + if ( operand->symbolDisplacement.dim ) + insnTemplate->writebyte ( '+' ); + //addOperand(fmt, Arg_Integer, newIntExp(operand->constDisplacement), asmcode); + if ( opInfo->operands[i] & Opr_Dest ) + asmcode->clobbersMemory = 1; + } + if ( operand->segmentPrefix != Reg_Invalid ) { writeReg ( operand->segmentPrefix ); @@ -2174,15 +2185,6 @@ namespace AsmParserx8632 } if ( use_star ) insnTemplate->writebyte ( '*' ); - if ( operand->segmentPrefix != Reg_Invalid || operand->constDisplacement ) - { - if ( operand->symbolDisplacement.dim ) - insnTemplate->writebyte ( '+' ); - //addOperand(fmt, Arg_Integer, newIntExp(operand->constDisplacement), asmcode); - 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 ( '(' );