Lines Matching +full:hi +full:- +full:fi
1 //===-- Mips16ISelDAGToDAG.cpp - A Dag to Dag Inst Selector for Mips16 ----===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 //===----------------------------------------------------------------------===//
35 #define DEBUG_TYPE "mips-isel"
39 if (!Subtarget->inMips16Mode())
47 SDNode *Lo = nullptr, *Hi = nullptr;
48 SDNode *Mul = CurDAG->getMachineNode(Opc, DL, MVT::Glue, N->getOperand(0),
49 N->getOperand(1));
54 Lo = CurDAG->getMachineNode(Opcode, DL, Ty, MVT::Glue, InGlue);
59 Hi = CurDAG->getMachineNode(Opcode, DL, Ty, InGlue);
61 return std::make_pair(Lo, Hi);
67 if (!MipsFI->globalBaseRegSet())
73 const TargetInstrInfo &TII = *Subtarget->getInstrInfo();
75 Register V0, V1, V2, GlobalBaseReg = MipsFI->getGlobalBaseReg(MF);
103 // if Address is FI, get the TargetFrameIndex.
106 Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), ValTy);
107 Offset = CurDAG->getTargetConstant(0, DL, ValTy);
122 // Addresses of the form FI+const or FI|const
123 if (CurDAG->isBaseWithConstantOffset(Addr)) {
125 if (isInt<16>(CN->getSExtValue())) {
126 // If the first operand is a FI, get the TargetFI Node
130 Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), ValTy);
131 Offset = CurDAG->getTargetConstant(CN->getZExtValue(), DL, ValTy);
137 Offset = CurDAG->getTargetConstant(CN->getZExtValue(), DL, ValTy);
145 // lui $2, %hi($CPI1_0)
149 // lui $2, %hi($CPI1_0)
163 Offset = CurDAG->getTargetConstant(0, DL, ValTy);
180 unsigned Opcode = Node->getOpcode();
184 // Instruction Selection not handled by the auto-generated
187 EVT NodeTy = Node->getValueType(0);
206 CurDAG->RemoveDeadNode(Node);