diff options
| author | Chad Rosier <mcrosier@apple.com> | 2013-04-19 19:29:50 +0000 |
|---|---|---|
| committer | Chad Rosier <mcrosier@apple.com> | 2013-04-19 19:29:50 +0000 |
| commit | 4acef770cfb9622a5baf3e1c72e99c4fc84e48ea (patch) | |
| tree | 3521ac8d02171d2a3290609de4c7db5726120200 | |
| parent | 76bb21bed8a58425a2817d0131a1ffd5c6e114e6 (diff) | |
| download | external_llvm-4acef770cfb9622a5baf3e1c72e99c4fc84e48ea.zip external_llvm-4acef770cfb9622a5baf3e1c72e99c4fc84e48ea.tar.gz external_llvm-4acef770cfb9622a5baf3e1c72e99c4fc84e48ea.tar.bz2 | |
[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
| -rw-r--r-- | lib/Target/X86/AsmParser/X86AsmParser.cpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index 0ac55ed..395fd97 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -1341,20 +1341,20 @@ X86Operand *X86AsmParser::ParseIntelBracExpression(unsigned SegReg, SMLoc Start, int BaseReg = SM.getBaseReg(); int IndexReg = SM.getIndexReg(); int Scale = SM.getScale(); - - if (isParsingInlineAsm()) - return CreateMemForInlineAsm(SegReg, Disp, BaseReg, IndexReg, Scale, Start, - End, Size, SM.getSymName()); - - // handle [-42] - if (!BaseReg && !IndexReg) { - if (!SegReg) - return X86Operand::CreateMem(Disp, Start, End, Size); - else - return X86Operand::CreateMem(SegReg, Disp, 0, 0, 1, Start, End, Size); + if (!isParsingInlineAsm()) { + // handle [-42] + if (!BaseReg && !IndexReg) { + if (!SegReg) + return X86Operand::CreateMem(Disp, Start, End, Size); + else + return X86Operand::CreateMem(SegReg, Disp, 0, 0, 1, Start, End, Size); + } + return X86Operand::CreateMem(SegReg, Disp, BaseReg, IndexReg, Scale, 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. |
