[ms-inline asm] Make code layout more canonical with iniline asm handled last.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179875 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chad Rosier 2013-04-19 19:29:50 +00:00
parent 76bb21bed8
commit 4acef770cf

View File

@ -1341,20 +1341,20 @@ X86Operand *X86AsmParser::ParseIntelBracExpression(unsigned SegReg, SMLoc Start,
int BaseReg = SM.getBaseReg(); int BaseReg = SM.getBaseReg();
int IndexReg = SM.getIndexReg(); int IndexReg = SM.getIndexReg();
int Scale = SM.getScale(); int Scale = SM.getScale();
if (!isParsingInlineAsm()) {
if (isParsingInlineAsm()) // handle [-42]
return CreateMemForInlineAsm(SegReg, Disp, BaseReg, IndexReg, Scale, Start, if (!BaseReg && !IndexReg) {
End, Size, SM.getSymName()); if (!SegReg)
return X86Operand::CreateMem(Disp, Start, End, Size);
// handle [-42] else
if (!BaseReg && !IndexReg) { return X86Operand::CreateMem(SegReg, Disp, 0, 0, 1, Start, End, Size);
if (!SegReg) }
return X86Operand::CreateMem(Disp, Start, End, Size); return X86Operand::CreateMem(SegReg, Disp, BaseReg, IndexReg, Scale, Start,
else End, Size);
return X86Operand::CreateMem(SegReg, Disp, 0, 0, 1, Start, End, Size);
} }
return X86Operand::CreateMem(SegReg, Disp, BaseReg, IndexReg, Scale, Start,
End, Size); return CreateMemForInlineAsm(SegReg, Disp, BaseReg, IndexReg, Scale, Start,
End, Size, SM.getSymName());
} }
// Inline assembly may use variable names with namespace alias qualifiers. // Inline assembly may use variable names with namespace alias qualifiers.