Lines Matching refs:MBBI

48   void signLR(MachineFunction &MF, MachineBasicBlock::iterator MBBI) const;
51 MachineBasicBlock::iterator MBBI) const;
54 void emitBlend(MachineBasicBlock::iterator MBBI, Register Result,
58 void expandPAuthBlend(MachineBasicBlock::iterator MBBI) const;
79 MachineBasicBlock::iterator MBBI, DebugLoc DL,
87 BuildMI(MBB, MBBI, DL, TII->get(AArch64::ADR))
95 BuildMI(MBB, MBBI, DL, TII->get(AArch64::PACM)).setMIFlag(Flags);
99 MachineBasicBlock::iterator MBBI) const {
106 MachineBasicBlock &MBB = *MBBI->getParent();
112 BuildMI(MBB, MBBI, DL, TII->get(AArch64::EMITBKEY))
126 BuildMI(MBB, MBBI, DL,
132 BuildPACM(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameSetup);
133 BuildMI(MBB, MBBI, DL,
145 for (auto I = MBBI; I != MBB.end(); ++I) {
148 MBBI = I;
155 BuildMI(MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION))
159 BuildMI(MBB, MBBI, DL, TII->get(AArch64::SEH_PACSignLR))
165 MachineFunction &MF, MachineBasicBlock::iterator MBBI) const {
171 MachineBasicBlock &MBB = *MBBI->getParent();
172 DebugLoc DL = MBBI->getDebugLoc();
173 // MBBI points to a PAUTH_EPILOGUE instruction to be replaced and
175 // Note that inserting new instructions "before MBBI" and "before TI" is
177 // are placed between MBBI and TI.
196 .copyImplicitOps(*MBBI)
201 .copyImplicitOps(*MBBI)
208 BuildMI(MBB, MBBI, DL,
213 BuildPACM(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameDestroy, PACSym);
214 BuildMI(MBB, MBBI, DL,
222 BuildMI(MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION))
227 BuildMI(MBB, MBBI, DL, TII->get(AArch64::SEH_PACSignLR))
248 MachineBasicBlock::iterator MBBI, AuthCheckMethod Method,
251 MachineBasicBlock &MBB = *MBBI->getParent();
255 DebugLoc DL = MBBI->getDebugLoc();
261 // MBBI. Thus, MBBI is expected to be the first terminator of its MBB.
262 assert(MBBI->isTerminator() && MBBI == MBB.getFirstTerminator() &&
263 "MBBI should be the first terminator in MBB");
272 BuildMI(MBB, MBBI, DL, TII->get(AArch64::LDRWui), getWRegFromXReg(TmpReg))
294 BuildMI(MBB, MBBI, DL, TII->get(AArch64::EORXrs), TmpReg)
298 BuildMI(MBB, MBBI, DL, TII->get(AArch64::TBNZX))
307 BuildMI(MBB, MBBI, DL, TII->get(AArch64::ORRXrs), TmpReg)
311 BuildMI(MBB, MBBI, DL, TII->get(AArch64::XPACLRI));
312 BuildMI(MBB, MBBI, DL, TII->get(AArch64::SUBSXrs), AArch64::XZR)
316 BuildMI(MBB, MBBI, DL, TII->get(AArch64::Bcc))
390 void AArch64PointerAuth::emitBlend(MachineBasicBlock::iterator MBBI,
393 MachineBasicBlock &MBB = *MBBI->getParent();
394 DebugLoc DL = MBBI->getDebugLoc();
397 BuildMI(MBB, MBBI, DL, TII->get(AArch64::ORRXrs), Result)
402 BuildMI(MBB, MBBI, DL, TII->get(AArch64::MOVKXi), Result)
409 MachineBasicBlock::iterator MBBI) const {
410 Register ResultReg = MBBI->getOperand(0).getReg();
411 Register AddrDisc = MBBI->getOperand(1).getReg();
412 unsigned IntDisc = MBBI->getOperand(2).getImm();
413 emitBlend(MBBI, ResultReg, AddrDisc, IntDisc);