Mercurial > projects > ldc
changeset 1097:4450834402e2
Fix FS:4 problem for x32
author | Kelly Wilson <wilsonk cpsc.ucalgary.ca> |
---|---|
date | Wed, 11 Mar 2009 12:13:41 -0400 |
parents | 25d3aaf9e058 |
children | 51543303f768 |
files | gen/asm-x86-32.h |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/gen/asm-x86-32.h Wed Mar 11 09:16:41 2009 -0600 +++ b/gen/asm-x86-32.h Wed Mar 11 12:13:41 2009 -0400 @@ -2059,9 +2059,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; @@ -2186,6 +2188,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 ( '(' );