Move the LowerMEMCPY and LowerMEMCPYCall to a common place.

Thanks for the suggestions Bill :-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43742 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2007-11-05 23:12:20 +00:00
parent 0a6d98e10e
commit f1ba1cad38
7 changed files with 84 additions and 107 deletions

View File

@@ -41,6 +41,7 @@ namespace llvm {
class MachineBasicBlock;
class MachineInstr;
class VectorType;
class TargetSubtarget;
//===----------------------------------------------------------------------===//
/// TargetLowering - This class defines information used to lower LLVM code to
@@ -845,6 +846,9 @@ protected:
public:
virtual const TargetSubtarget *getSubtarget() {
assert(0 && "Not Implemented");
}
//===--------------------------------------------------------------------===//
// Lowering methods - These methods must be implemented by targets so that
// the SelectionDAGLowering code knows how to lower these.
@@ -878,6 +882,18 @@ public:
bool isVarArg, unsigned CallingConv, bool isTailCall,
SDOperand Callee, ArgListTy &Args, SelectionDAG &DAG);
virtual SDOperand LowerMEMCPY(SDOperand Op, SelectionDAG &DAG);
virtual SDOperand LowerMEMCPYCall(SDOperand Chain, SDOperand Dest,
SDOperand Source, SDOperand Count,
SelectionDAG &DAG);
virtual SDOperand LowerMEMCPYInline(SDOperand Chain, SDOperand Dest,
SDOperand Source, unsigned Size,
unsigned Align, SelectionDAG &DAG) {
assert(0 && "Not Implemented");
}
/// LowerOperation - This callback is invoked for operations that are
/// unsupported by the target, which are registered to use 'custom' lowering,
/// and whose defined values are all legal.