Lines Matching defs:MemI
2868 AArch64InstrInfo::getAddrModeFromMemoryOp(const MachineInstr &MemI,
2873 if (!getMemOperandWithOffset(MemI, Base, Offset, OffsetIsScalable, TRI))
2886 bool AArch64InstrInfo::canFoldIntoAddrMode(const MachineInstr &MemI,
2893 switch (MemI.getOpcode()) {
2993 const MachineOperand &BaseRegOp = MemI.getOperand(0);
2998 if (MemI.getOperand(2).isReg()) {
3001 if (MemI.getOperand(3).getImm())
3005 if (MemI.getOperand(4).getImm() == 0)
3011 if (MemI.getOperand(1).getReg() == Reg && OffsetScale != 1)
3027 AM.BaseReg = MemI.getOperand(1).getReg();
3029 AM.BaseReg = MemI.getOperand(2).getReg();
3058 AM.BaseReg = MemI.getOperand(1).getReg();
3060 AM.BaseReg = MemI.getOperand(2).getReg();
3096 int64_t OldOffset = MemI.getOperand(2).getImm() * OffsetScale;
3115 if (MemI.getOperand(2).getImm() != 0)
3127 auto avoidSlowSTRQ = [&](const MachineInstr &MemI) {
3128 unsigned Opcode = MemI.getOpcode();
3134 const bool OptSize = MemI.getMF()->getFunction().hasOptSize();
3170 if (avoidSlowSTRQ(MemI))
3184 if (!OptSize && avoidSlowSTRQ(MemI))
3196 if (!OptSize && avoidSlowSTRQ(MemI))
3562 MachineInstr *AArch64InstrInfo::emitLdStWithAddr(MachineInstr &MemI,
3565 const DebugLoc &DL = MemI.getDebugLoc();
3566 MachineBasicBlock &MBB = *MemI.getParent();
3567 MachineRegisterInfo &MRI = MemI.getMF()->getRegInfo();
3572 unsigned Opcode = regOffsetOpcode(MemI.getOpcode());
3574 auto B = BuildMI(MBB, MemI, DL, get(Opcode))
3575 .addReg(MemI.getOperand(0).getReg(),
3576 MemI.mayLoad() ? RegState::Define : 0)
3581 .setMemRefs(MemI.memoperands())
3582 .setMIFlags(MemI.getFlags());
3591 unsigned Opcode = MemI.getOpcode();
3597 auto B = BuildMI(MBB, MemI, DL, get(Opcode))
3598 .addReg(MemI.getOperand(0).getReg(),
3599 MemI.mayLoad() ? RegState::Define : 0)
3602 .setMemRefs(MemI.memoperands())
3603 .setMIFlags(MemI.getFlags());
3612 unsigned Opcode = offsetExtendOpcode(MemI.getOpcode());
3619 BuildMI(MBB, MemI, DL, get(TargetOpcode::COPY), OffsetReg)
3622 auto B = BuildMI(MBB, MemI, DL, get(Opcode))
3623 .addReg(MemI.getOperand(0).getReg(),
3624 MemI.mayLoad() ? RegState::Define : 0)
3629 .setMemRefs(MemI.memoperands())
3630 .setMIFlags(MemI.getFlags());