Lines Matching defs:MemI
2719 AArch64InstrInfo::getAddrModeFromMemoryOp(const MachineInstr &MemI,
2724 if (!getMemOperandWithOffset(MemI, Base, Offset, OffsetIsScalable, TRI))
2737 bool AArch64InstrInfo::canFoldIntoAddrMode(const MachineInstr &MemI,
2744 switch (MemI.getOpcode()) {
2844 const MachineOperand &BaseRegOp = MemI.getOperand(0);
2849 if (MemI.getOperand(2).isReg()) {
2852 if (MemI.getOperand(3).getImm())
2856 if (MemI.getOperand(4).getImm() == 0)
2862 if (MemI.getOperand(1).getReg() == Reg && OffsetScale != 1)
2878 AM.BaseReg = MemI.getOperand(1).getReg();
2880 AM.BaseReg = MemI.getOperand(2).getReg();
2909 AM.BaseReg = MemI.getOperand(1).getReg();
2911 AM.BaseReg = MemI.getOperand(2).getReg();
2947 int64_t OldOffset = MemI.getOperand(2).getImm() * OffsetScale;
2966 if (MemI.getOperand(2).getImm() != 0)
2978 auto avoidSlowSTRQ = [&](const MachineInstr &MemI) {
2979 unsigned Opcode = MemI.getOpcode();
2985 const bool OptSize = MemI.getMF()->getFunction().hasOptSize();
3021 if (avoidSlowSTRQ(MemI))
3035 if (!OptSize && avoidSlowSTRQ(MemI))
3047 if (!OptSize && avoidSlowSTRQ(MemI))
3413 MachineInstr *AArch64InstrInfo::emitLdStWithAddr(MachineInstr &MemI,
3416 const DebugLoc &DL = MemI.getDebugLoc();
3417 MachineBasicBlock &MBB = *MemI.getParent();
3418 MachineRegisterInfo &MRI = MemI.getMF()->getRegInfo();
3423 unsigned Opcode = regOffsetOpcode(MemI.getOpcode());
3425 auto B = BuildMI(MBB, MemI, DL, get(Opcode))
3426 .addReg(MemI.getOperand(0).getReg(),
3427 MemI.mayLoad() ? RegState::Define : 0)
3432 .setMemRefs(MemI.memoperands())
3433 .setMIFlags(MemI.getFlags());
3442 unsigned Opcode = MemI.getOpcode();
3448 auto B = BuildMI(MBB, MemI, DL, get(Opcode))
3449 .addReg(MemI.getOperand(0).getReg(),
3450 MemI.mayLoad() ? RegState::Define : 0)
3453 .setMemRefs(MemI.memoperands())
3454 .setMIFlags(MemI.getFlags());
3463 unsigned Opcode = offsetExtendOpcode(MemI.getOpcode());
3470 BuildMI(MBB, MemI, DL, get(TargetOpcode::COPY), OffsetReg)
3473 auto B = BuildMI(MBB, MemI, DL, get(Opcode))
3474 .addReg(MemI.getOperand(0).getReg(),
3475 MemI.mayLoad() ? RegState::Define : 0)
3480 .setMemRefs(MemI.memoperands())
3481 .setMIFlags(MemI.getFlags());