Home | History | Annotate | Download | only in X86

Lines Matching full:regno

189     unsigned getSlot(unsigned RegNo) const {
190 assert(RegNo < NumFPRegs && "Regno out of range!");
191 return RegMap[RegNo];
194 /// isLive - Is RegNo currently live in the stack?
195 bool isLive(unsigned RegNo) const {
196 unsigned Slot = getSlot(RegNo);
197 return Slot < StackTop && Stack[Slot] == RegNo;
208 /// isScratchReg - Returns trus if RegNo is a scratch FP register.
209 static bool isScratchReg(unsigned RegNo) {
210 return RegNo > 8 && RegNo < NumFPRegs;
221 /// FP<RegNo> register.
222 unsigned getSTReg(unsigned RegNo) const {
223 return StackTop - 1 - getSlot(RegNo) + X86::ST0;
235 bool isAtTop(unsigned RegNo) const { return getSlot(RegNo) == StackTop-1; }
236 void moveToTop(unsigned RegNo, MachineBasicBlock::iterator I) {
238 if (isAtTop(RegNo)) return;
240 unsigned STReg = getSTReg(RegNo);
244 std::swap(RegMap[RegNo], RegMap[RegOnTop]);
256 void duplicateToTop(unsigned RegNo, unsigned AsReg, MachineInstr *I) {
258 unsigned STReg = getSTReg(RegNo);
265 /// RegNo. If any PendingST registers still need the RegNo value, duplicate
267 void duplicatePendingSTBeforeKill(unsigned RegNo, MachineInstr *I) {
269 if (PendingST[i] != RegNo)
273 << " in FP" << RegNo << " to FP" << SR << '\n');
274 duplicateToTop(RegNo, SR, I);
884 unsigned RegNo = Stack[i];
885 if (!(Defs & (1 << RegNo)))
887 Kills |= (1 << RegNo);
890 Defs &= ~(1 << RegNo);