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 /lib/Target/X86/AsmParser/X86AsmParser.cpp | |
parent | 76bb21bed8a58425a2817d0131a1ffd5c6e114e6 (diff) | |
download | llvm-4acef770cfb9622a5baf3e1c72e99c4fc84e48ea.tar.gz llvm-4acef770cfb9622a5baf3e1c72e99c4fc84e48ea.tar.bz2 llvm-4acef770cfb9622a5baf3e1c72e99c4fc84e48ea.tar.xz |
[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
Diffstat (limited to 'lib/Target/X86/AsmParser/X86AsmParser.cpp')
-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 0ac55ed29f..395fd97f96 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. |