Resort tables

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7541 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-08-03 21:56:36 +00:00
parent 4d18d5ce1e
commit 113455be9d
2 changed files with 42 additions and 34 deletions

View File

@ -259,21 +259,25 @@ static int Lookup(const TableEntry *Table, unsigned N, unsigned Opcode) {
// element is an instruction, the second is the version which pops.
//
static const TableEntry PopTable[] = {
{ X86::FSTr32 , X86::FSTPr32 },
{ X86::FSTr64 , X86::FSTPr64 },
{ X86::FSTrr , X86::FSTPrr },
{ X86::FADDrST0 , X86::FADDPrST0 },
{ X86::FDIVRrST0, X86::FDIVRPrST0 },
{ X86::FDIVrST0 , X86::FDIVPrST0 },
{ X86::FISTr16 , X86::FISTPr16 },
{ X86::FISTr32 , X86::FISTPr32 },
{ X86::FADDrST0 , X86::FADDPrST0 },
{ X86::FSUBrST0 , X86::FSUBPrST0 },
{ X86::FSUBRrST0, X86::FSUBRPrST0 },
{ X86::FMULrST0 , X86::FMULPrST0 },
{ X86::FDIVrST0 , X86::FDIVPrST0 },
{ X86::FDIVRrST0, X86::FDIVRPrST0 },
{ X86::FUCOMr , X86::FUCOMPr },
{ X86::FSTr32 , X86::FSTPr32 },
{ X86::FSTr64 , X86::FSTPr64 },
{ X86::FSTrr , X86::FSTPrr },
{ X86::FSUBRrST0, X86::FSUBRPrST0 },
{ X86::FSUBrST0 , X86::FSUBPrST0 },
{ X86::FUCOMPr , X86::FUCOMPPr },
{ X86::FUCOMr , X86::FUCOMPr },
};
/// popStackAfter - Pop the current value off of the top of the FP stack after
@ -363,36 +367,36 @@ void FPS::handleOneArgFP(MachineBasicBlock::iterator &I) {
// ForwardST0Table - Map: A = B op C into: ST(0) = ST(0) op ST(i)
static const TableEntry ForwardST0Table[] = {
{ X86::FpADD, X86::FADDST0r },
{ X86::FpSUB, X86::FSUBST0r },
{ X86::FpMUL, X86::FMULST0r },
{ X86::FpDIV, X86::FDIVST0r },
{ X86::FpMUL, X86::FMULST0r },
{ X86::FpSUB, X86::FSUBST0r },
{ X86::FpUCOM, X86::FUCOMr },
};
// ReverseST0Table - Map: A = B op C into: ST(0) = ST(i) op ST(0)
static const TableEntry ReverseST0Table[] = {
{ X86::FpADD, X86::FADDST0r }, // commutative
{ X86::FpSUB, X86::FSUBRST0r },
{ X86::FpMUL, X86::FMULST0r }, // commutative
{ X86::FpDIV, X86::FDIVRST0r },
{ X86::FpMUL, X86::FMULST0r }, // commutative
{ X86::FpSUB, X86::FSUBRST0r },
{ X86::FpUCOM, ~0 },
};
// ForwardSTiTable - Map: A = B op C into: ST(i) = ST(0) op ST(i)
static const TableEntry ForwardSTiTable[] = {
{ X86::FpADD, X86::FADDrST0 }, // commutative
{ X86::FpSUB, X86::FSUBRrST0 },
{ X86::FpMUL, X86::FMULrST0 }, // commutative
{ X86::FpDIV, X86::FDIVRrST0 },
{ X86::FpMUL, X86::FMULrST0 }, // commutative
{ X86::FpSUB, X86::FSUBRrST0 },
{ X86::FpUCOM, X86::FUCOMr },
};
// ReverseSTiTable - Map: A = B op C into: ST(i) = ST(i) op ST(0)
static const TableEntry ReverseSTiTable[] = {
{ X86::FpADD, X86::FADDrST0 },
{ X86::FpSUB, X86::FSUBrST0 },
{ X86::FpMUL, X86::FMULrST0 },
{ X86::FpDIV, X86::FDIVrST0 },
{ X86::FpMUL, X86::FMULrST0 },
{ X86::FpSUB, X86::FSUBrST0 },
{ X86::FpUCOM, ~0 },
};

View File

@ -259,21 +259,25 @@ static int Lookup(const TableEntry *Table, unsigned N, unsigned Opcode) {
// element is an instruction, the second is the version which pops.
//
static const TableEntry PopTable[] = {
{ X86::FSTr32 , X86::FSTPr32 },
{ X86::FSTr64 , X86::FSTPr64 },
{ X86::FSTrr , X86::FSTPrr },
{ X86::FADDrST0 , X86::FADDPrST0 },
{ X86::FDIVRrST0, X86::FDIVRPrST0 },
{ X86::FDIVrST0 , X86::FDIVPrST0 },
{ X86::FISTr16 , X86::FISTPr16 },
{ X86::FISTr32 , X86::FISTPr32 },
{ X86::FADDrST0 , X86::FADDPrST0 },
{ X86::FSUBrST0 , X86::FSUBPrST0 },
{ X86::FSUBRrST0, X86::FSUBRPrST0 },
{ X86::FMULrST0 , X86::FMULPrST0 },
{ X86::FDIVrST0 , X86::FDIVPrST0 },
{ X86::FDIVRrST0, X86::FDIVRPrST0 },
{ X86::FUCOMr , X86::FUCOMPr },
{ X86::FSTr32 , X86::FSTPr32 },
{ X86::FSTr64 , X86::FSTPr64 },
{ X86::FSTrr , X86::FSTPrr },
{ X86::FSUBRrST0, X86::FSUBRPrST0 },
{ X86::FSUBrST0 , X86::FSUBPrST0 },
{ X86::FUCOMPr , X86::FUCOMPPr },
{ X86::FUCOMr , X86::FUCOMPr },
};
/// popStackAfter - Pop the current value off of the top of the FP stack after
@ -363,36 +367,36 @@ void FPS::handleOneArgFP(MachineBasicBlock::iterator &I) {
// ForwardST0Table - Map: A = B op C into: ST(0) = ST(0) op ST(i)
static const TableEntry ForwardST0Table[] = {
{ X86::FpADD, X86::FADDST0r },
{ X86::FpSUB, X86::FSUBST0r },
{ X86::FpMUL, X86::FMULST0r },
{ X86::FpDIV, X86::FDIVST0r },
{ X86::FpMUL, X86::FMULST0r },
{ X86::FpSUB, X86::FSUBST0r },
{ X86::FpUCOM, X86::FUCOMr },
};
// ReverseST0Table - Map: A = B op C into: ST(0) = ST(i) op ST(0)
static const TableEntry ReverseST0Table[] = {
{ X86::FpADD, X86::FADDST0r }, // commutative
{ X86::FpSUB, X86::FSUBRST0r },
{ X86::FpMUL, X86::FMULST0r }, // commutative
{ X86::FpDIV, X86::FDIVRST0r },
{ X86::FpMUL, X86::FMULST0r }, // commutative
{ X86::FpSUB, X86::FSUBRST0r },
{ X86::FpUCOM, ~0 },
};
// ForwardSTiTable - Map: A = B op C into: ST(i) = ST(0) op ST(i)
static const TableEntry ForwardSTiTable[] = {
{ X86::FpADD, X86::FADDrST0 }, // commutative
{ X86::FpSUB, X86::FSUBRrST0 },
{ X86::FpMUL, X86::FMULrST0 }, // commutative
{ X86::FpDIV, X86::FDIVRrST0 },
{ X86::FpMUL, X86::FMULrST0 }, // commutative
{ X86::FpSUB, X86::FSUBRrST0 },
{ X86::FpUCOM, X86::FUCOMr },
};
// ReverseSTiTable - Map: A = B op C into: ST(i) = ST(i) op ST(0)
static const TableEntry ReverseSTiTable[] = {
{ X86::FpADD, X86::FADDrST0 },
{ X86::FpSUB, X86::FSUBrST0 },
{ X86::FpMUL, X86::FMULrST0 },
{ X86::FpDIV, X86::FDIVrST0 },
{ X86::FpMUL, X86::FMULrST0 },
{ X86::FpSUB, X86::FSUBrST0 },
{ X86::FpUCOM, ~0 },
};