OLD | NEW |
1 //===-- MipsSEISelLowering.cpp - MipsSE DAG Lowering Interface --*- C++ -*-===// | 1 //===-- MipsSEISelLowering.cpp - MipsSE DAG Lowering Interface --*- C++ -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // Subclass of MipsTargetLowering specialized for mips32/64. | 10 // Subclass of MipsTargetLowering specialized for mips32/64. |
(...skipping 1490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1501 return DAG.getNode(ISD::AND, DL, ResTy, Op->getOperand(1), BitMask); | 1501 return DAG.getNode(ISD::AND, DL, ResTy, Op->getOperand(1), BitMask); |
1502 } | 1502 } |
1503 | 1503 |
1504 SDValue MipsSETargetLowering::lowerINTRINSIC_WO_CHAIN(SDValue Op, | 1504 SDValue MipsSETargetLowering::lowerINTRINSIC_WO_CHAIN(SDValue Op, |
1505 SelectionDAG &DAG) const { | 1505 SelectionDAG &DAG) const { |
1506 SDLoc DL(Op); | 1506 SDLoc DL(Op); |
1507 | 1507 |
1508 switch (cast<ConstantSDNode>(Op->getOperand(0))->getZExtValue()) { | 1508 switch (cast<ConstantSDNode>(Op->getOperand(0))->getZExtValue()) { |
1509 default: | 1509 default: |
1510 return SDValue(); | 1510 return SDValue(); |
| 1511 // @LOCALMOD-BEGIN |
| 1512 case Intrinsic::nacl_read_tp: |
| 1513 return GetNaClThreadPointer(DAG, SDLoc(Op)); |
| 1514 // @LOCALMOD-END |
1511 case Intrinsic::mips_shilo: | 1515 case Intrinsic::mips_shilo: |
1512 return lowerDSPIntr(Op, DAG, MipsISD::SHILO); | 1516 return lowerDSPIntr(Op, DAG, MipsISD::SHILO); |
1513 case Intrinsic::mips_dpau_h_qbl: | 1517 case Intrinsic::mips_dpau_h_qbl: |
1514 return lowerDSPIntr(Op, DAG, MipsISD::DPAU_H_QBL); | 1518 return lowerDSPIntr(Op, DAG, MipsISD::DPAU_H_QBL); |
1515 case Intrinsic::mips_dpau_h_qbr: | 1519 case Intrinsic::mips_dpau_h_qbr: |
1516 return lowerDSPIntr(Op, DAG, MipsISD::DPAU_H_QBR); | 1520 return lowerDSPIntr(Op, DAG, MipsISD::DPAU_H_QBR); |
1517 case Intrinsic::mips_dpsu_h_qbl: | 1521 case Intrinsic::mips_dpsu_h_qbl: |
1518 return lowerDSPIntr(Op, DAG, MipsISD::DPSU_H_QBL); | 1522 return lowerDSPIntr(Op, DAG, MipsISD::DPSU_H_QBL); |
1519 case Intrinsic::mips_dpsu_h_qbr: | 1523 case Intrinsic::mips_dpsu_h_qbr: |
1520 return lowerDSPIntr(Op, DAG, MipsISD::DPSU_H_QBR); | 1524 return lowerDSPIntr(Op, DAG, MipsISD::DPSU_H_QBR); |
(...skipping 1718 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3239 BuildMI(*BB, MI, DL, TII->get(Mips::FFINT_U_D), Ws2).addReg(Ws1); | 3243 BuildMI(*BB, MI, DL, TII->get(Mips::FFINT_U_D), Ws2).addReg(Ws1); |
3240 | 3244 |
3241 // Emit 1.0 * fexp2(Wt) | 3245 // Emit 1.0 * fexp2(Wt) |
3242 BuildMI(*BB, MI, DL, TII->get(Mips::FEXP2_D), MI->getOperand(0).getReg()) | 3246 BuildMI(*BB, MI, DL, TII->get(Mips::FEXP2_D), MI->getOperand(0).getReg()) |
3243 .addReg(Ws2) | 3247 .addReg(Ws2) |
3244 .addReg(MI->getOperand(1).getReg()); | 3248 .addReg(MI->getOperand(1).getReg()); |
3245 | 3249 |
3246 MI->eraseFromParent(); // The pseudo instruction is gone now. | 3250 MI->eraseFromParent(); // The pseudo instruction is gone now. |
3247 return BB; | 3251 return BB; |
3248 } | 3252 } |
OLD | NEW |