diff options
| author | Eric Astor <epastor@google.com> | 2020-01-09 14:01:55 -0500 |
|---|---|---|
| committer | Eric Astor <epastor@google.com> | 2020-01-09 14:55:03 -0500 |
| commit | 1c545f6dbcbb3ada2dfef2c6afbc1ca8939135cb (patch) | |
| tree | 10b597f4379943fee8e5d36e64ac774e0ce81504 /llvm/lib/Target/X86/AsmParser | |
| parent | 3408940f736955402b7676e3b8bab6906cc82637 (diff) | |
| download | bcm5719-llvm-1c545f6dbcbb3ada2dfef2c6afbc1ca8939135cb.tar.gz bcm5719-llvm-1c545f6dbcbb3ada2dfef2c6afbc1ca8939135cb.zip | |
[ms] [X86] Use "P" modifier on all branch-target operands in inline X86 assembly.
Summary:
Extend D71677 to apply to all branch-target operands, rather than special-casing call instructions.
Also add a regression test for llvm.org/PR44272, since this finishes fixing it.
Reviewers: thakis, rnk
Reviewed By: thakis
Subscribers: merge_guards_bot, hiraditya, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D72417
Diffstat (limited to 'llvm/lib/Target/X86/AsmParser')
| -rw-r--r-- | llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | 9 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/AsmParser/X86Operand.h | 3 |
2 files changed, 0 insertions, 12 deletions
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp index 27c6a5f9142..69299ae9b00 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -2924,15 +2924,6 @@ bool X86AsmParser::ParseInstruction(ParseInstructionInfo &Info, StringRef Name, } } - // Mark the operands of a call instruction. These need to be handled - // differently when referenced in MS-style inline assembly. - if (Name.startswith("call") || Name.startswith("lcall")) { - for (size_t i = 1; i < Operands.size(); ++i) { - X86Operand &Op = static_cast<X86Operand &>(*Operands[i]); - Op.setCallOperand(true); - } - } - if (Flags) Operands.push_back(X86Operand::CreatePrefix(Flags, NameLoc, NameLoc)); return false; diff --git a/llvm/lib/Target/X86/AsmParser/X86Operand.h b/llvm/lib/Target/X86/AsmParser/X86Operand.h index 36b8bc4e65f..d831a63b04e 100644 --- a/llvm/lib/Target/X86/AsmParser/X86Operand.h +++ b/llvm/lib/Target/X86/AsmParser/X86Operand.h @@ -284,9 +284,6 @@ struct X86Operand final : public MCParsedAsmOperand { bool needAddressOf() const override { return AddressOf; } - bool isCallOperand() const override { return CallOperand; } - void setCallOperand(bool IsCallOperand) { CallOperand = IsCallOperand; } - bool isMem() const override { return Kind == Memory; } bool isMemUnsized() const { return Kind == Memory && Mem.Size == 0; |

