diff options
author | Akira Hatanaka <ahatanaka@mips.com> | 2013-03-30 01:36:35 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@mips.com> | 2013-03-30 01:36:35 +0000 |
commit | f5926fd844a84adcf1ae4f193146f2877997b82c (patch) | |
tree | 05be74d426a18df3c8c1bbf0853efe760f29c0ab /lib/Target/Mips/MipsSEISelLowering.h | |
parent | 9cf0724cc3a570fe64146fda7518cef5c740e988 (diff) | |
download | llvm-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.h | 5 |
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; }; |