Lines Matching defs:MemOp

127     MemOp,
135 M68kMemOp MemOp;
150 bool isMemOp() const { return Kind == KindTy::MemOp; }
163 static std::unique_ptr<M68kOperand> createMemOp(M68kMemOp MemOp, SMLoc Start,
313 return Kind == KindTy::MemOp && MemOp.Op == M68kMemOp::Kind::Reg;
318 return MemOp.OuterReg;
328 std::unique_ptr<M68kOperand> M68kOperand::createMemOp(M68kMemOp MemOp,
330 auto Op = std::make_unique<M68kOperand>(KindTy::MemOp, Start, End);
331 Op->MemOp = MemOp;
386 if (MemOp.Op == M68kMemOp::Kind::RegMask)
389 if (MemOp.Op != M68kMemOp::Kind::Reg)
394 return getRegisterIndex(MemOp.OuterReg) < 16;
401 uint16_t MoveMask = MemOp.RegMask;
402 if (MemOp.Op == M68kMemOp::Kind::Reg)
403 MoveMask = 1 << getRegisterIndex(MemOp.OuterReg);
410 return isMemOp() && MemOp.Op == M68kMemOp::Kind::Addr;
417 if (MemOp.OuterDisp->evaluateAsAbsolute(Res))
424 M68kOperand::addExpr(Inst, MemOp.OuterDisp);
429 return isMemOp() && MemOp.Op == M68kMemOp::Kind::RegIndirect &&
430 M68k::AR32RegClass.contains(MemOp.OuterReg);
433 Inst.addOperand(MCOperand::createReg(MemOp.OuterReg));
438 return isMemOp() && MemOp.Op == M68kMemOp::Kind::RegIndirectDisplacement &&
439 M68k::AR32RegClass.contains(MemOp.OuterReg);
442 M68kOperand::addExpr(Inst, MemOp.OuterDisp);
443 Inst.addOperand(MCOperand::createReg(MemOp.OuterReg));
449 MemOp.Op == M68kMemOp::Kind::RegIndirectDisplacementIndex &&
450 M68k::AR32RegClass.contains(MemOp.OuterReg);
453 M68kOperand::addExpr(Inst, MemOp.OuterDisp);
454 Inst.addOperand(MCOperand::createReg(MemOp.OuterReg));
455 Inst.addOperand(MCOperand::createReg(MemOp.InnerReg));
460 return isMemOp() && MemOp.Op == M68kMemOp::Kind::RegPreDecrement &&
461 M68k::AR32RegClass.contains(MemOp.OuterReg);
464 Inst.addOperand(MCOperand::createReg(MemOp.OuterReg));
469 return isMemOp() && MemOp.Op == M68kMemOp::Kind::RegPostIncrement &&
470 M68k::AR32RegClass.contains(MemOp.OuterReg);
473 Inst.addOperand(MCOperand::createReg(MemOp.OuterReg));
478 return isMemOp() && MemOp.Op == M68kMemOp::Kind::RegIndirectDisplacement &&
479 MemOp.OuterReg == M68k::PC;
482 M68kOperand::addExpr(Inst, MemOp.OuterDisp);
488 MemOp.Op == M68kMemOp::Kind::RegIndirectDisplacementIndex &&
489 MemOp.OuterReg == M68k::PC;
492 M68kOperand::addExpr(Inst, MemOp.OuterDisp);
493 Inst.addOperand(MCOperand::createReg(MemOp.InnerReg));
787 M68kMemOp MemOp;
800 if (Parser.parseExpression(MemOp.OuterDisp))
807 MemOp.Op = M68kMemOp::Kind::Addr;
809 M68kOperand::createMemOp(MemOp, Start, getLexer().getLoc()));
821 if (Parser.parseExpression(MemOp.OuterDisp))
827 MemOp.Op = M68kMemOp::Kind::Addr;
829 M68kOperand::createMemOp(MemOp, Start, getLexer().getLoc()));
836 Result = parseRegister(MemOp.OuterReg);
848 Result = parseRegister(MemOp.InnerReg);
856 MemOp.Size = 4;
857 MemOp.Scale = 1;
858 MemOp.InnerDisp = MCConstantExpr::create(0, Parser.getContext(), true, 4);
880 MemOp.Op = M68kMemOp::Kind::RegPreDecrement;
882 MemOp.Op = M68kMemOp::Kind::RegPostIncrement;
884 MemOp.Op = M68kMemOp::Kind::RegIndirectDisplacementIndex;
886 MemOp.Op = M68kMemOp::Kind::RegIndirectDisplacement;
888 MemOp.Op = M68kMemOp::Kind::RegIndirect;
891 Operands.push_back(M68kOperand::createMemOp(MemOp, Start, End));
897 M68kMemOp MemOp(M68kMemOp::Kind::RegMask);
898 MemOp.RegMask = 0;
902 (MemOp.Op == M68kMemOp::Kind::RegMask) && (MemOp.RegMask == 0);
927 MemOp.Op = M68kMemOp::Kind::Reg;
928 MemOp.OuterReg = FirstRegister;
930 if (MemOp.Op == M68kMemOp::Kind::Reg) {
933 MemOp.Op = M68kMemOp::Kind::RegMask;
934 MemOp.RegMask = 1 << getRegisterIndex(MemOp.OuterReg);
936 if (MemOp.RegMask == 0)
945 if (NewMaskBits & MemOp.RegMask)
948 MemOp.RegMask |= NewMaskBits;
956 M68kOperand::createMemOp(MemOp, Start, getLexer().getLoc()));
1071 case KindTy::MemOp:
1072 MemOp.print(OS);