summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-09-15 04:08:38 +0000
committerChris Lattner <sabre@nondot.org>2010-09-15 04:08:38 +0000
commit7df35dbd19f7d5bca68e2436d3abe3ba789a5593 (patch)
treeae3ae57755d9da9721427d2cdd27f4c8bbaa3df4 /llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
parent4dbcba0082d89d6eb7670f7b28cffbd8d522560a (diff)
downloadbcm5719-llvm-7df35dbd19f7d5bca68e2436d3abe3ba789a5593.tar.gz
bcm5719-llvm-7df35dbd19f7d5bca68e2436d3abe3ba789a5593.zip
add some aliases for f[u]comi, part of rdar://8431422
llvm-svn: 113930
Diffstat (limited to 'llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp')
-rw-r--r--llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index dde34631ef4..c21fc7ab56e 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -933,13 +933,15 @@ ParseInstruction(StringRef Name, SMLoc NameLoc,
NameLoc, NameLoc));
}
- // The assembler accepts these instructions with no operand as a synonym for
- // an instruction acting on st,st(1). e.g. "faddp" -> "faddp %st(0),%st(1)".
- //if (() &&
- // Operands.size() == 1) {
- // Operands.push_back(X86Operand::CreateReg(MatchRegisterName("st(1)"),
- // NameLoc, NameLoc));
- //}
+ // The assembler accepts these instructions with two few operands as a synonym
+ // for taking %st(1),%st(0) or X, %st(0).
+ if ((Name == "fcomi" || Name == "fucomi") && Operands.size() < 3) {
+ if (Operands.size() == 1)
+ Operands.push_back(X86Operand::CreateReg(MatchRegisterName("st(1)"),
+ NameLoc, NameLoc));
+ Operands.push_back(X86Operand::CreateReg(MatchRegisterName("st(0)"),
+ NameLoc, NameLoc));
+ }
return false;
}
OpenPOWER on IntegriCloud