summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/AsmParser
diff options
context:
space:
mode:
authorEric Astor <epastor@google.com>2020-01-09 14:01:55 -0500
committerEric Astor <epastor@google.com>2020-01-09 14:55:03 -0500
commit1c545f6dbcbb3ada2dfef2c6afbc1ca8939135cb (patch)
tree10b597f4379943fee8e5d36e64ac774e0ce81504 /llvm/lib/Target/X86/AsmParser
parent3408940f736955402b7676e3b8bab6906cc82637 (diff)
downloadbcm5719-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.cpp9
-rw-r--r--llvm/lib/Target/X86/AsmParser/X86Operand.h3
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;
OpenPOWER on IntegriCloud