Lines Matching refs:Rd

325       Register Rd;
395 OffsetRange getOffsetRange(Register Rd) const;
498 if (ED.Rd.Reg != 0)
499 OS << printReg(ED.Rd.Reg, &HRI, ED.Rd.Sub);
1126 // Get the allowable deviation from the current value of Rd by checking
1127 // all uses of Rd.
1128 OffsetRange HCE::getOffsetRange(Register Rd) const {
1130 for (const MachineOperand &Op : MRI->use_operands(Rd.Reg)) {
1134 if (Rd != Register(Op))
1136 Range.intersect(getOffsetRange(Rd, *Op.getParent()));
1159 // (Re: ##Off + Rb<<S) = Rd: ##Val
1162 case HexagonII::AbsoluteSet: // (Rd: ## + __<<_)
1163 ED.Rd = MI.getOperand(OpNum-1);
1182 case Hexagon::A2_tfrsi: // (Rd: ## + __<<_)
1183 ED.Rd = MI.getOperand(0);
1186 case Hexagon::A2_combineii: // (Rd: ## + __<<_)
1188 ED.Rd = { MI.getOperand(0).getReg(), Hexagon::isub_hi };
1191 case Hexagon::A4_combineri: // (Rd: ## + __<<_)
1192 ED.Rd = { MI.getOperand(0).getReg(), Hexagon::isub_lo };
1195 case Hexagon::A2_addi: // (Rd: ## + Rs<<0)
1196 ED.Rd = MI.getOperand(0);
1204 case Hexagon::A2_subri: // (Rd: ## - Rs<<0)
1205 ED.Rd = MI.getOperand(0);
1279 assert(ED.Rd.Reg != 0);
1280 Ranges[I-Begin] = getOffsetRange(ED.Rd).shift(EV.Offset);
1656 // Loads: Rd = L4_loadri_ur Rs, S, ##
1833 assert((!ED.IsDef || ED.Rd.Reg != 0) && "Missing Rd for def");
1854 // If ED is a def, and Diff is not 0, then all uses of the register Rd
1855 // defined by ED must be in the form (Rd, imm), i.e. the immediate offset
1856 // must follow the Rd in the operand list.
1859 for (MachineOperand &Op : MRI->use_operands(ED.Rd.Reg)) {
1883 // users of Rd have been updated, all that needs to be done is to replace
1884 // Rd with ExtR.
1886 assert(ED.Rd.Sub == 0 && ExtR.Sub == 0);
1887 MRI->replaceRegWith(ED.Rd.Reg, ExtR.Reg);