Lines Matching defs:FrameReg
158 void prepareReplaceFI(MachineInstr &MI, Register &FrameReg, int64_t &Offset,
163 void replaceFI(MachineInstr &MI, Register FrameReg, int64_t Offset,
167 void processSTQ(MachineInstr &MI, Register FrameReg, int64_t Offset,
169 void processLDQ(MachineInstr &MI, Register FrameReg, int64_t Offset,
172 void processSTVM(MachineInstr &MI, Register FrameReg, int64_t Offset,
174 void processLDVM(MachineInstr &MI, Register FrameReg, int64_t Offset,
177 void processSTVM512(MachineInstr &MI, Register FrameReg, int64_t Offset,
179 void processLDVM512(MachineInstr &MI, Register FrameReg, int64_t Offset,
189 void processMI(MachineInstr &MI, Register FrameReg, int64_t Offset,
196 void EliminateFrameIndex::prepareReplaceFI(MachineInstr &MI, Register &FrameReg,
208 // lea.sl %clobber, Offset@hi(FrameReg, %clobber)
213 .addReg(FrameReg)
217 FrameReg = clobber;
222 void EliminateFrameIndex::replaceFI(MachineInstr &MI, Register FrameReg,
228 MI.getOperand(FIOperandNum).ChangeToRegister(FrameReg, false);
232 void EliminateFrameIndex::processSTQ(MachineInstr &MI, Register FrameReg,
237 prepareReplaceFI(MI, FrameReg, Offset, 8);
244 build(VE::STrii).addReg(FrameReg).addImm(0).addImm(0).addReg(SrcLoReg);
245 replaceFI(*StMI, FrameReg, Offset, 0);
250 replaceFI(MI, FrameReg, Offset, FIOperandNum);
253 void EliminateFrameIndex::processLDQ(MachineInstr &MI, Register FrameReg,
258 prepareReplaceFI(MI, FrameReg, Offset, 8);
265 build(VE::LDrii, DestLoReg).addReg(FrameReg).addImm(0).addImm(0);
266 replaceFI(*StMI, FrameReg, Offset, 1);
270 replaceFI(MI, FrameReg, Offset, FIOperandNum);
273 void EliminateFrameIndex::processSTVM(MachineInstr &MI, Register FrameReg,
290 prepareReplaceFI(MI, FrameReg, Offset, 24);
300 build(VE::STrii).addReg(FrameReg).addImm(0).addImm(0).addReg(
302 replaceFI(*StMI, FrameReg, Offset, 0);
308 replaceFI(MI, FrameReg, Offset, FIOperandNum);
311 void EliminateFrameIndex::processLDVM(MachineInstr &MI, Register FrameReg,
328 prepareReplaceFI(MI, FrameReg, Offset, 24);
337 build(VE::LDrii, TmpReg).addReg(FrameReg).addImm(0).addImm(0);
338 replaceFI(*StMI, FrameReg, Offset, 1);
360 replaceFI(MI, FrameReg, Offset, FIOperandNum);
363 void EliminateFrameIndex::processSTVM512(MachineInstr &MI, Register FrameReg,
368 prepareReplaceFI(MI, FrameReg, Offset, 56);
382 build(VE::STrii).addReg(FrameReg).addImm(0).addImm(0).addReg(
384 replaceFI(*StMI, FrameReg, Offset, 0);
393 build(VE::STrii).addReg(FrameReg).addImm(0).addImm(0).addReg(
395 replaceFI(*StMI, FrameReg, Offset, 0);
406 replaceFI(MI, FrameReg, Offset, FIOperandNum);
409 void EliminateFrameIndex::processLDVM512(MachineInstr &MI, Register FrameReg,
414 prepareReplaceFI(MI, FrameReg, Offset, 56);
425 build(VE::LDrii, TmpReg).addReg(FrameReg).addImm(0).addImm(0);
426 replaceFI(*LdMI, FrameReg, Offset, 1);
435 build(VE::LDrii, TmpReg).addReg(FrameReg).addImm(0).addImm(0);
436 replaceFI(*LdMI, FrameReg, Offset, 1);
449 replaceFI(MI, FrameReg, Offset, FIOperandNum);
452 void EliminateFrameIndex::processMI(MachineInstr &MI, Register FrameReg,
456 processSTQ(MI, FrameReg, Offset, FIOperandNum);
459 processLDQ(MI, FrameReg, Offset, FIOperandNum);
462 processSTVM(MI, FrameReg, Offset, FIOperandNum);
465 processLDVM(MI, FrameReg, Offset, FIOperandNum);
468 processSTVM512(MI, FrameReg, Offset, FIOperandNum);
471 processLDVM512(MI, FrameReg, Offset, FIOperandNum);
474 prepareReplaceFI(MI, FrameReg, Offset);
475 replaceFI(MI, FrameReg, Offset, FIOperandNum);
494 // Retrieve FrameReg and byte offset for stack slot.
495 Register FrameReg;
497 TFI.getFrameIndexReference(MF, FrameIndex, FrameReg).getFixed();
500 EFI.processMI(MI, FrameReg, Offset, FIOperandNum);