Mercurial > projects > ldc
changeset 1093:cb868105a6b5
Change x64 asm in Cache.d from a positive offset from after rbp "-20(%rbp)+4" to before
"4+-20(%rbp)"
author | Kelly Wilson <wilsonk cpsc.ucalgary.ca> |
---|---|
date | Tue, 10 Mar 2009 22:02:11 -0600 |
parents | e6fadb6e6bdd |
children | fa20521cbb13 |
files | gen/asm-x86-64.h |
diffstat | 1 files changed, 11 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/gen/asm-x86-64.h Tue Mar 10 20:40:22 2009 -0400 +++ b/gen/asm-x86-64.h Tue Mar 10 22:02:11 2009 -0600 @@ -2177,6 +2177,17 @@ } 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 ); @@ -2296,15 +2307,6 @@ } 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 ( '(' );