# HG changeset patch # User Kelly Wilson # Date 1236784601 21600 # Node ID 25d3aaf9e05812efe58831576eac30cab3ac090d # Parent d6bd818212de18a22663056320e08c596722d53f Fix FS:4 miswrite due to earlier changes for a constant displacement diff -r d6bd818212de -r 25d3aaf9e058 gen/asm-x86-64.h --- a/gen/asm-x86-64.h Wed Mar 11 14:17:13 2009 +0100 +++ b/gen/asm-x86-64.h Wed Mar 11 09:16:41 2009 -0600 @@ -2181,9 +2181,11 @@ 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 @@ } 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 ( '(' );