[llvm-commits] [llvm] r113930 - in /llvm/trunk: lib/Target/X86/AsmParser/X86AsmParser.cpp test/MC/AsmParser/X86/x86_instructions.s
Chris Lattner
sabre at nondot.org
Tue Sep 14 21:08:38 PDT 2010
Author: lattner
Date: Tue Sep 14 23:08:38 2010
New Revision: 113930
URL: http://llvm.org/viewvc/llvm-project?rev=113930&view=rev
Log:
add some aliases for f[u]comi, part of rdar://8431422
Modified:
llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
llvm/trunk/test/MC/AsmParser/X86/x86_instructions.s
Modified: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp?rev=113930&r1=113929&r2=113930&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp Tue Sep 14 23:08:38 2010
@@ -933,13 +933,15 @@
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;
}
Modified: llvm/trunk/test/MC/AsmParser/X86/x86_instructions.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AsmParser/X86/x86_instructions.s?rev=113930&r1=113929&r2=113930&view=diff
==============================================================================
--- llvm/trunk/test/MC/AsmParser/X86/x86_instructions.s (original)
+++ llvm/trunk/test/MC/AsmParser/X86/x86_instructions.s Tue Sep 14 23:08:38 2010
@@ -235,3 +235,17 @@
fmulp
fdivp
fdivrp
+
+// CHECK: fcomi %st(1), %st(0)
+// CHECK: fcomi %st(2), %st(0)
+// CHECK: fucomi %st(1), %st(0)
+// CHECK: fucomi %st(2), %st(0)
+// CHECK: fucomi %st(2), %st(0)
+
+fcomi
+fcomi %st(2)
+fucomi
+fucomi %st(2)
+fucomi %st(2), %st
+
+
More information about the llvm-commits
mailing list