comparison gen/asm-x86-64.h @ 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 20d96c148b39
children d6bd818212de
comparison
equal deleted inserted replaced
1092:e6fadb6e6bdd 1093:cb868105a6b5
2175 { 2175 {
2176 mode = Mode_Input; 2176 mode = Mode_Input;
2177 } 2177 }
2178 2178
2179 use_star = opTakesLabel();//opInfo->takesLabel(); 2179 use_star = opTakesLabel();//opInfo->takesLabel();
2180
2181 if ( operand->segmentPrefix != Reg_Invalid || operand->constDisplacement )
2182 {
2183 insnTemplate->printf ( "%d", operand->constDisplacement );
2184 if ( operand->symbolDisplacement.dim )
2185 insnTemplate->writebyte ( '+' );
2186 //addOperand(fmt, Arg_Integer, newIntExp(operand->constDisplacement), asmcode);
2187 if ( opInfo->operands[i] & Opr_Dest )
2188 asmcode->clobbersMemory = 1;
2189 }
2190
2180 if ( operand->segmentPrefix != Reg_Invalid ) 2191 if ( operand->segmentPrefix != Reg_Invalid )
2181 { 2192 {
2182 writeReg ( operand->segmentPrefix ); 2193 writeReg ( operand->segmentPrefix );
2183 insnTemplate->writebyte ( ':' ); 2194 insnTemplate->writebyte ( ':' );
2184 } 2195 }
2294 } 2305 }
2295 } 2306 }
2296 } 2307 }
2297 if ( use_star ) 2308 if ( use_star )
2298 insnTemplate->writebyte ( '*' ); 2309 insnTemplate->writebyte ( '*' );
2299 if ( operand->segmentPrefix != Reg_Invalid || operand->constDisplacement )
2300 {
2301 if ( operand->symbolDisplacement.dim )
2302 insnTemplate->writebyte ( '+' );
2303 //addOperand(fmt, Arg_Integer, newIntExp(operand->constDisplacement), asmcode);
2304 insnTemplate->printf ( "%d", operand->constDisplacement );
2305 if ( opInfo->operands[i] & Opr_Dest )
2306 asmcode->clobbersMemory = 1;
2307 }
2308 if ( operand->baseReg != Reg_Invalid || operand->indexReg != Reg_Invalid ) 2310 if ( operand->baseReg != Reg_Invalid || operand->indexReg != Reg_Invalid )
2309 { 2311 {
2310 insnTemplate->writebyte ( '(' ); 2312 insnTemplate->writebyte ( '(' );
2311 if ( operand->baseReg != Reg_Invalid ) 2313 if ( operand->baseReg != Reg_Invalid )
2312 writeReg ( operand->baseReg ); 2314 writeReg ( operand->baseReg );