Mercurial > hg > CbC > CbC_llvm
diff lib/Target/Mips/MipsSEISelDAGToDAG.h @ 120:1172e4bd9c6f
update 4.0.0
author | mir3636 |
---|---|
date | Fri, 25 Nov 2016 19:14:25 +0900 |
parents | afa8332a0e37 |
children | 803732b1fca8 |
line wrap: on
line diff
--- a/lib/Target/Mips/MipsSEISelDAGToDAG.h Tue Jan 26 22:56:36 2016 +0900 +++ b/lib/Target/Mips/MipsSEISelDAGToDAG.h Fri Nov 25 19:14:25 2016 +0900 @@ -21,7 +21,8 @@ class MipsSEDAGToDAGISel : public MipsDAGToDAGISel { public: - explicit MipsSEDAGToDAGISel(MipsTargetMachine &TM) : MipsDAGToDAGISel(TM) {} + explicit MipsSEDAGToDAGISel(MipsTargetMachine &TM, CodeGenOpt::Level OL) + : MipsDAGToDAGISel(TM, OL) {} private: @@ -34,22 +35,21 @@ bool replaceUsesWithZeroReg(MachineRegisterInfo *MRI, const MachineInstr&); - std::pair<SDNode*, SDNode*> selectMULT(SDNode *N, unsigned Opc, SDLoc dl, - EVT Ty, bool HasLo, bool HasHi); + std::pair<SDNode *, SDNode *> selectMULT(SDNode *N, unsigned Opc, + const SDLoc &dl, EVT Ty, bool HasLo, + bool HasHi); - SDNode *selectAddESubE(unsigned MOp, SDValue InFlag, SDValue CmpLHS, - SDLoc DL, SDNode *Node) const; + void selectAddESubE(unsigned MOp, SDValue InFlag, SDValue CmpLHS, + const SDLoc &DL, SDNode *Node) const; bool selectAddrFrameIndex(SDValue Addr, SDValue &Base, SDValue &Offset) const; bool selectAddrFrameIndexOffset(SDValue Addr, SDValue &Base, SDValue &Offset, - unsigned OffsetBits) const; + unsigned OffsetBits, + unsigned ShiftAmount) const; bool selectAddrRegImm(SDValue Addr, SDValue &Base, SDValue &Offset) const override; - bool selectAddrRegReg(SDValue Addr, SDValue &Base, - SDValue &Offset) const override; - bool selectAddrDefault(SDValue Addr, SDValue &Base, SDValue &Offset) const override; @@ -59,7 +59,7 @@ bool selectAddrRegImm9(SDValue Addr, SDValue &Base, SDValue &Offset) const; - bool selectAddrRegImm10(SDValue Addr, SDValue &Base, + bool selectAddrRegImm11(SDValue Addr, SDValue &Base, SDValue &Offset) const; bool selectAddrRegImm12(SDValue Addr, SDValue &Base, @@ -68,14 +68,29 @@ bool selectAddrRegImm16(SDValue Addr, SDValue &Base, SDValue &Offset) const; - bool selectIntAddrMM(SDValue Addr, SDValue &Base, - SDValue &Offset) const override; + bool selectIntAddr11MM(SDValue Addr, SDValue &Base, + SDValue &Offset) const override; + + bool selectIntAddr12MM(SDValue Addr, SDValue &Base, + SDValue &Offset) const override; + + bool selectIntAddr16MM(SDValue Addr, SDValue &Base, + SDValue &Offset) const override; bool selectIntAddrLSL2MM(SDValue Addr, SDValue &Base, SDValue &Offset) const override; - bool selectIntAddrMSA(SDValue Addr, SDValue &Base, - SDValue &Offset) const override; + bool selectIntAddrSImm10(SDValue Addr, SDValue &Base, + SDValue &Offset) const override; + + bool selectIntAddrSImm10Lsl1(SDValue Addr, SDValue &Base, + SDValue &Offset) const override; + + bool selectIntAddrSImm10Lsl2(SDValue Addr, SDValue &Base, + SDValue &Offset) const override; + + bool selectIntAddrSImm10Lsl3(SDValue Addr, SDValue &Base, + SDValue &Offset) const override; /// \brief Select constant vector splats. bool selectVSplat(SDNode *N, APInt &Imm, @@ -111,7 +126,7 @@ /// starting at bit zero. bool selectVSplatMaskR(SDValue N, SDValue &Imm) const override; - std::pair<bool, SDNode*> selectNode(SDNode *Node) override; + bool trySelect(SDNode *Node) override; void processFunctionAfterISel(MachineFunction &MF) override; @@ -124,8 +139,8 @@ std::vector<SDValue> &OutOps) override; }; -FunctionPass *createMipsSEISelDag(MipsTargetMachine &TM); - +FunctionPass *createMipsSEISelDag(MipsTargetMachine &TM, + CodeGenOpt::Level OptLevel); } #endif