Mercurial > projects > ldc
comparison gen/d-asm-i386.h @ 390:e04389bafb3e
Fix inline asm FS:4 by writing the displacement directly into the asm instead of using %fs:$0 with an input constraint.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sat, 26 Jul 2008 13:38:25 +0200 |
parents | 3f98d46e05a4 |
children | cc40db549aea |
comparison
equal
deleted
inserted
replaced
389:722f5e90c39c | 390:e04389bafb3e |
---|---|
1927 if (use_star) | 1927 if (use_star) |
1928 insnTemplate->writebyte('*'); | 1928 insnTemplate->writebyte('*'); |
1929 if (operand->constDisplacement) { | 1929 if (operand->constDisplacement) { |
1930 if (operand->symbolDisplacement.dim) | 1930 if (operand->symbolDisplacement.dim) |
1931 insnTemplate->writebyte('+'); | 1931 insnTemplate->writebyte('+'); |
1932 addOperand(fmt, Arg_Integer, newIntExp(operand->constDisplacement), asmcode); | 1932 //addOperand(fmt, Arg_Integer, newIntExp(operand->constDisplacement), asmcode); |
1933 insnTemplate->printf("%d", operand->constDisplacement); | |
1933 if (opInfo->operands[i] & Opr_Dest) | 1934 if (opInfo->operands[i] & Opr_Dest) |
1934 asmcode->clobbersMemory = 1; | 1935 asmcode->clobbersMemory = 1; |
1935 } | 1936 } |
1936 if (operand->baseReg != Reg_Invalid || operand->indexReg != Reg_Invalid) { | 1937 if (operand->baseReg != Reg_Invalid || operand->indexReg != Reg_Invalid) { |
1937 insnTemplate->writebyte('('); | 1938 insnTemplate->writebyte('('); |