aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/X86/FloatingPoint.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-04-12 03:02:48 +0000
committerChris Lattner <sabre@nondot.org>2004-04-12 03:02:48 +0000
commit133dbb128501f7006a533678261dd8e0debc663c (patch)
tree9b766c2ede255a5f08ade24b732c3e8e33d249ee /lib/Target/X86/FloatingPoint.cpp
parent284b496aaeb959d382b2410e4bd21fb6e0c694bb (diff)
Fix issues that the local allocator has dealing with instructions that implicitly use ST(0)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12855 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/FloatingPoint.cpp')
-rw-r--r--lib/Target/X86/FloatingPoint.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/Target/X86/FloatingPoint.cpp b/lib/Target/X86/FloatingPoint.cpp
index cc0e47de1b..70a643b254 100644
--- a/lib/Target/X86/FloatingPoint.cpp
+++ b/lib/Target/X86/FloatingPoint.cpp
@@ -494,42 +494,42 @@ void FPS::handleOneArgFPRW(MachineBasicBlock::iterator &I) {
// ForwardST0Table - Map: A = B op C into: ST(0) = ST(0) op ST(i)
static const TableEntry ForwardST0Table[] = {
- { X86::FUCOMIr, X86::FUCOMIr },
{ X86::FpADD , X86::FADDST0r },
{ X86::FpDIV , X86::FDIVST0r },
{ X86::FpMUL , X86::FMULST0r },
{ X86::FpSUB , X86::FSUBST0r },
{ X86::FpUCOM , X86::FUCOMr },
+ { X86::FpUCOMI, X86::FUCOMIr },
};
// ReverseST0Table - Map: A = B op C into: ST(0) = ST(i) op ST(0)
static const TableEntry ReverseST0Table[] = {
- { X86::FUCOMIr, ~0 },
{ X86::FpADD , X86::FADDST0r }, // commutative
{ X86::FpDIV , X86::FDIVRST0r },
{ X86::FpMUL , X86::FMULST0r }, // commutative
{ X86::FpSUB , X86::FSUBRST0r },
{ X86::FpUCOM , ~0 },
+ { X86::FpUCOMI, ~0 },
};
// ForwardSTiTable - Map: A = B op C into: ST(i) = ST(0) op ST(i)
static const TableEntry ForwardSTiTable[] = {
- { X86::FUCOMIr, X86::FUCOMIr },
{ X86::FpADD , X86::FADDrST0 }, // commutative
{ X86::FpDIV , X86::FDIVRrST0 },
{ X86::FpMUL , X86::FMULrST0 }, // commutative
{ X86::FpSUB , X86::FSUBRrST0 },
{ X86::FpUCOM , X86::FUCOMr },
+ { X86::FpUCOMI, X86::FUCOMIr },
};
// ReverseSTiTable - Map: A = B op C into: ST(i) = ST(i) op ST(0)
static const TableEntry ReverseSTiTable[] = {
- { X86::FUCOMIr, ~0 },
{ X86::FpADD , X86::FADDrST0 },
{ X86::FpDIV , X86::FDIVrST0 },
{ X86::FpMUL , X86::FMULrST0 },
{ X86::FpSUB , X86::FSUBrST0 },
{ X86::FpUCOM , ~0 },
+ { X86::FpUCOMI, ~0 },
};
@@ -553,7 +553,7 @@ void FPS::handleTwoArgFP(MachineBasicBlock::iterator &I) {
unsigned NumOperands = MI->getNumOperands();
bool isCompare = MI->getOpcode() == X86::FpUCOM ||
- MI->getOpcode() == X86::FUCOMIr;
+ MI->getOpcode() == X86::FpUCOMI;
assert((NumOperands == 3 || (NumOperands == 2 && isCompare)) &&
"Illegal TwoArgFP instruction!");
unsigned Dest = getFPReg(MI->getOperand(0));