mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-22 10:29:35 +00:00
add some aliases for f[u]comi, part of rdar://8431422
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113930 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2d592d10a5
commit
8f777a205e
@ -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
Block a user