diff options
author | Chris Lattner <sabre@nondot.org> | 2010-09-15 04:08:38 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-09-15 04:08:38 +0000 |
commit | 7df35dbd19f7d5bca68e2436d3abe3ba789a5593 (patch) | |
tree | ae3ae57755d9da9721427d2cdd27f4c8bbaa3df4 /llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | |
parent | 4dbcba0082d89d6eb7670f7b28cffbd8d522560a (diff) | |
download | bcm5719-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.cpp | 16 |
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; } |