Mercurial > projects > ldc
comparison gen/asm-x86-32.h @ 1094:fa20521cbb13
Change faulty offset for asm in Cache.d (ie. change "-20(%rbp)+4)" to
"4+-20(%rbp)")
author | Kelly Wilson <wilsonk cpsc.ucalgary.ca> |
---|---|
date | Wed, 11 Mar 2009 00:08:45 -0400 |
parents | e6fadb6e6bdd |
children | d6bd818212de |
comparison
equal
deleted
inserted
replaced
1093:cb868105a6b5 | 1094:fa20521cbb13 |
---|---|
2053 { | 2053 { |
2054 mode = Mode_Input; | 2054 mode = Mode_Input; |
2055 } | 2055 } |
2056 | 2056 |
2057 use_star = opTakesLabel();//opInfo->takesLabel(); | 2057 use_star = opTakesLabel();//opInfo->takesLabel(); |
2058 | |
2059 if ( operand->segmentPrefix != Reg_Invalid || operand->constDisplacement ) | |
2060 { | |
2061 insnTemplate->printf ( "%d", operand->constDisplacement ); | |
2062 if ( operand->symbolDisplacement.dim ) | |
2063 insnTemplate->writebyte ( '+' ); | |
2064 //addOperand(fmt, Arg_Integer, newIntExp(operand->constDisplacement), asmcode); | |
2065 if ( opInfo->operands[i] & Opr_Dest ) | |
2066 asmcode->clobbersMemory = 1; | |
2067 } | |
2068 | |
2058 if ( operand->segmentPrefix != Reg_Invalid ) | 2069 if ( operand->segmentPrefix != Reg_Invalid ) |
2059 { | 2070 { |
2060 writeReg ( operand->segmentPrefix ); | 2071 writeReg ( operand->segmentPrefix ); |
2061 insnTemplate->writebyte ( ':' ); | 2072 insnTemplate->writebyte ( ':' ); |
2062 } | 2073 } |
2172 } | 2183 } |
2173 } | 2184 } |
2174 } | 2185 } |
2175 if ( use_star ) | 2186 if ( use_star ) |
2176 insnTemplate->writebyte ( '*' ); | 2187 insnTemplate->writebyte ( '*' ); |
2177 if ( operand->segmentPrefix != Reg_Invalid || operand->constDisplacement ) | |
2178 { | |
2179 if ( operand->symbolDisplacement.dim ) | |
2180 insnTemplate->writebyte ( '+' ); | |
2181 //addOperand(fmt, Arg_Integer, newIntExp(operand->constDisplacement), asmcode); | |
2182 insnTemplate->printf ( "%d", operand->constDisplacement ); | |
2183 if ( opInfo->operands[i] & Opr_Dest ) | |
2184 asmcode->clobbersMemory = 1; | |
2185 } | |
2186 if ( operand->baseReg != Reg_Invalid || operand->indexReg != Reg_Invalid ) | 2188 if ( operand->baseReg != Reg_Invalid || operand->indexReg != Reg_Invalid ) |
2187 { | 2189 { |
2188 insnTemplate->writebyte ( '(' ); | 2190 insnTemplate->writebyte ( '(' ); |
2189 if ( operand->baseReg != Reg_Invalid ) | 2191 if ( operand->baseReg != Reg_Invalid ) |
2190 writeReg ( operand->baseReg ); | 2192 writeReg ( operand->baseReg ); |