summaryrefslogtreecommitdiff
path: root/lib/Target/Mips/MipsSEISelLowering.h
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@mips.com>2013-03-30 01:36:35 +0000
committerAkira Hatanaka <ahatanaka@mips.com>2013-03-30 01:36:35 +0000
commitf5926fd844a84adcf1ae4f193146f2877997b82c (patch)
tree05be74d426a18df3c8c1bbf0853efe760f29c0ab /lib/Target/Mips/MipsSEISelLowering.h
parent9cf0724cc3a570fe64146fda7518cef5c740e988 (diff)
downloadllvm-f5926fd844a84adcf1ae4f193146f2877997b82c.tar.gz
llvm-f5926fd844a84adcf1ae4f193146f2877997b82c.tar.bz2
llvm-f5926fd844a84adcf1ae4f193146f2877997b82c.tar.xz
[mips] Fix definitions of multiply, multiply-add/sub and divide instructions.
The new instructions have explicit register output operands and use table-gen patterns instead of C++ code to do instruction selection. Mips16's instructions are unaffected by this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178403 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips/MipsSEISelLowering.h')
-rw-r--r--lib/Target/Mips/MipsSEISelLowering.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/Mips/MipsSEISelLowering.h b/lib/Target/Mips/MipsSEISelLowering.h
index e1f949f247..8f9dc90aed 100644
--- a/lib/Target/Mips/MipsSEISelLowering.h
+++ b/lib/Target/Mips/MipsSEISelLowering.h
@@ -24,6 +24,8 @@ namespace llvm {
virtual bool allowsUnalignedMemoryAccesses(EVT VT, bool *Fast) const;
+ virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const;
+
virtual MachineBasicBlock *
EmitInstrWithCustomInserter(MachineInstr *MI, MachineBasicBlock *MBB) const;
@@ -47,6 +49,9 @@ namespace llvm {
bool IsPICCall, bool GlobalOrExternal, bool InternalLinkage,
CallLoweringInfo &CLI, SDValue Callee, SDValue Chain) const;
+ SDValue lowerMulDiv(SDValue Op, unsigned NewOpc, bool HasLo, bool HasHi,
+ SelectionDAG &DAG) const;
+
MachineBasicBlock *emitBPOSGE32(MachineInstr *MI,
MachineBasicBlock *BB) const;
};