Lines Matching defs:Rd

325       Register Rd;
396 OffsetRange getOffsetRange(Register Rd) const;
499 if (ED.Rd.Reg != 0)
500 OS << printReg(ED.Rd.Reg, &HRI, ED.Rd.Sub);
1127 // Get the allowable deviation from the current value of Rd by checking
1128 // all uses of Rd.
1129 OffsetRange HCE::getOffsetRange(Register Rd) const {
1131 for (const MachineOperand &Op : MRI->use_operands(Rd.Reg)) {
1135 if (Rd != Register(Op))
1137 Range.intersect(getOffsetRange(Rd, *Op.getParent()));
1160 // (Re: ##Off + Rb<<S) = Rd: ##Val
1163 case HexagonII::AbsoluteSet: // (Rd: ## + __<<_)
1164 ED.Rd = MI.getOperand(OpNum-1);
1183 case Hexagon::A2_tfrsi: // (Rd: ## + __<<_)
1184 ED.Rd = MI.getOperand(0);
1187 case Hexagon::A2_combineii: // (Rd: ## + __<<_)
1189 ED.Rd = { MI.getOperand(0).getReg(), Hexagon::isub_hi };
1192 case Hexagon::A4_combineri: // (Rd: ## + __<<_)
1193 ED.Rd = { MI.getOperand(0).getReg(), Hexagon::isub_lo };
1196 case Hexagon::A2_addi: // (Rd: ## + Rs<<0)
1197 ED.Rd = MI.getOperand(0);
1205 case Hexagon::A2_subri: // (Rd: ## - Rs<<0)
1206 ED.Rd = MI.getOperand(0);
1284 assert(ED.Rd.Reg != 0);
1285 Ranges[I-Begin] = getOffsetRange(ED.Rd).shift(EV.Offset);
1678 // Loads: Rd = L4_loadri_ur Rs, S, ##
1855 assert((!ED.IsDef || ED.Rd.Reg != 0) && "Missing Rd for def");
1876 // If ED is a def, and Diff is not 0, then all uses of the register Rd
1877 // defined by ED must be in the form (Rd, imm), i.e. the immediate offset
1878 // must follow the Rd in the operand list.
1881 for (MachineOperand &Op : MRI->use_operands(ED.Rd.Reg)) {
1905 // users of Rd have been updated, all that needs to be done is to replace
1906 // Rd with ExtR.
1908 assert(ED.Rd.Sub == 0 && ExtR.Sub == 0);
1909 MRI->replaceRegWith(ED.Rd.Reg, ExtR.Reg);