mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
[ms-inline asm] Remove brackets from around a symbol reference in the target
specific logic. This makes the code much less fragile. Test case coming on the clang side in a moment. rdar://13634327 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179323 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -4196,12 +4196,8 @@ AsmParser::parseMSInlineAsm(void *AsmLoc, std::string &AsmString,
|
||||
|
||||
// Emit everything up to the immediate/expression.
|
||||
unsigned Len = Loc - AsmStart;
|
||||
if (Len) {
|
||||
// For Input/Output operands we need to remove the brackets, if present.
|
||||
if ((Kind == AOK_Input || Kind == AOK_Output) && Loc[-1] == '[')
|
||||
--Len;
|
||||
if (Len)
|
||||
OS << StringRef(AsmStart, Len);
|
||||
}
|
||||
|
||||
// Skip the original expression.
|
||||
if (Kind == AOK_Skip) {
|
||||
@@ -4255,11 +4251,6 @@ AsmParser::parseMSInlineAsm(void *AsmLoc, std::string &AsmString,
|
||||
|
||||
// Skip the original expression.
|
||||
AsmStart = Loc + (*I).Len + AdditionalSkip;
|
||||
|
||||
// For Input/Output operands we need to remove the brackets, if present.
|
||||
if ((Kind == AOK_Input || Kind == AOK_Output) && AsmStart != AsmEnd &&
|
||||
*AsmStart == ']')
|
||||
++AsmStart;
|
||||
}
|
||||
|
||||
// Emit the remainder of the asm string.
|
||||
|
Reference in New Issue
Block a user