add some aliases for f[u]comi, part of rdar://8431422

llvm-svn: 113930
This commit is contained in:
Chris Lattner 2010-09-15 04:08:38 +00:00
parent 4dbcba0082
commit 7df35dbd19
2 changed files with 23 additions and 7 deletions

View File

@ -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;
}

View File

@ -235,3 +235,17 @@ fsubrp
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