Added class MachineCacheInfo.

Also added function to convert float to int by copying via memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1221 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Vikram S. Adve 2001-11-09 02:11:03 +00:00
parent cf1ae7cea1
commit 4938d4528f
3 changed files with 30 additions and 6 deletions

View File

@ -236,9 +236,9 @@ public:
vector<MachineInstr*>& minstrVec, vector<MachineInstr*>& minstrVec,
vector<TmpInstruction*>& temps) const =0; vector<TmpInstruction*>& temps) const =0;
// Create an instruction sequence to copy an integer value `val' from an // Create an instruction sequence to copy an integer value `val'
// integer to a floating point register `dest'. val must be an integral // to a floating point value `dest' by copying to memory and back.
// type. dest must be a Float or Double. // val must be an integral type. dest must be a Float or Double.
// The generated instructions are returned in `minstrVec'. // The generated instructions are returned in `minstrVec'.
// Any temp. registers (TmpInstruction) created are returned in `tempVec'. // Any temp. registers (TmpInstruction) created are returned in `tempVec'.
// //
@ -248,6 +248,17 @@ public:
vector<MachineInstr*>& minstrVec, vector<MachineInstr*>& minstrVec,
vector<TmpInstruction*>& tempVec, vector<TmpInstruction*>& tempVec,
TargetMachine& target) const = 0; TargetMachine& target) const = 0;
// Similarly, create an instruction sequence to copy an FP value
// `val' to an integer value `dest' by copying to memory and back.
// See the previous function for information about return values.
//
virtual void CreateCodeToCopyFloatToInt(Method* method,
Value* val,
Instruction* dest,
vector<MachineInstr*>& minstrVec,
vector<TmpInstruction*>& tempVec,
TargetMachine& target) const = 0;
}; };
#endif #endif

View File

@ -236,9 +236,9 @@ public:
vector<MachineInstr*>& minstrVec, vector<MachineInstr*>& minstrVec,
vector<TmpInstruction*>& temps) const =0; vector<TmpInstruction*>& temps) const =0;
// Create an instruction sequence to copy an integer value `val' from an // Create an instruction sequence to copy an integer value `val'
// integer to a floating point register `dest'. val must be an integral // to a floating point value `dest' by copying to memory and back.
// type. dest must be a Float or Double. // val must be an integral type. dest must be a Float or Double.
// The generated instructions are returned in `minstrVec'. // The generated instructions are returned in `minstrVec'.
// Any temp. registers (TmpInstruction) created are returned in `tempVec'. // Any temp. registers (TmpInstruction) created are returned in `tempVec'.
// //
@ -248,6 +248,17 @@ public:
vector<MachineInstr*>& minstrVec, vector<MachineInstr*>& minstrVec,
vector<TmpInstruction*>& tempVec, vector<TmpInstruction*>& tempVec,
TargetMachine& target) const = 0; TargetMachine& target) const = 0;
// Similarly, create an instruction sequence to copy an FP value
// `val' to an integer value `dest' by copying to memory and back.
// See the previous function for information about return values.
//
virtual void CreateCodeToCopyFloatToInt(Method* method,
Value* val,
Instruction* dest,
vector<MachineInstr*>& minstrVec,
vector<TmpInstruction*>& tempVec,
TargetMachine& target) const = 0;
}; };
#endif #endif

View File

@ -16,6 +16,7 @@ class MachineInstrDescriptor;
class MachineSchedInfo; class MachineSchedInfo;
class MachineRegInfo; class MachineRegInfo;
class MachineFrameInfo; class MachineFrameInfo;
class MachineCacheInfo;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Data types used to define information about a single machine instruction // Data types used to define information about a single machine instruction
@ -65,6 +66,7 @@ public:
virtual const MachineSchedInfo& getSchedInfo() const = 0; virtual const MachineSchedInfo& getSchedInfo() const = 0;
virtual const MachineRegInfo& getRegInfo() const = 0; virtual const MachineRegInfo& getRegInfo() const = 0;
virtual const MachineFrameInfo& getFrameInfo() const = 0; virtual const MachineFrameInfo& getFrameInfo() const = 0;
virtual const MachineCacheInfo& getCacheInfo() const = 0;
// //
// Data storage information // Data storage information