summaryrefslogtreecommitdiffstats
path: root/llvm/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
commitbe8612f6f44b4cec3d462d780ce7734cdf3f2a98 (patch)
tree0cbda5185d59f679ae7a0cf82c5f16bbb386ccad /llvm/lib/Target/Mips/MipsSEISelLowering.h
parentb8cb8359ce9156d36b6c3b12906bad0186b6b15d (diff)
downloadbcm5719-llvm-be8612f6f44b4cec3d462d780ce7734cdf3f2a98.tar.gz
bcm5719-llvm-be8612f6f44b4cec3d462d780ce7734cdf3f2a98.zip
[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. llvm-svn: 178403
Diffstat (limited to 'llvm/lib/Target/Mips/MipsSEISelLowering.h')
-rw-r--r--llvm/lib/Target/Mips/MipsSEISelLowering.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MipsSEISelLowering.h b/llvm/lib/Target/Mips/MipsSEISelLowering.h
index e1f949f2475..8f9dc90aeda 100644
--- a/llvm/lib/Target/Mips/MipsSEISelLowering.h
+++ b/llvm/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;
};
OpenPOWER on IntegriCloud