forked from OSchip/llvm-project
add some aliases for f[u]comi, part of rdar://8431422
llvm-svn: 113930
This commit is contained in:
parent
4dbcba0082
commit
7df35dbd19
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue