Lines Matching refs:MemOp
127 MemOp, enumerator
135 M68kMemOp MemOp; member
150 bool isMemOp() const { return Kind == KindTy::MemOp; } in isMemOp()
163 static std::unique_ptr<M68kOperand> createMemOp(M68kMemOp MemOp, SMLoc Start,
312 return Kind == KindTy::MemOp && MemOp.Op == M68kMemOp::Kind::Reg; in isReg()
317 return MemOp.OuterReg; in getReg()
327 std::unique_ptr<M68kOperand> M68kOperand::createMemOp(M68kMemOp MemOp, in createMemOp() argument
329 auto Op = std::make_unique<M68kOperand>(KindTy::MemOp, Start, End); in createMemOp()
330 Op->MemOp = MemOp; in createMemOp()
385 if (MemOp.Op == M68kMemOp::Kind::RegMask) in isMoveMask()
388 if (MemOp.Op != M68kMemOp::Kind::Reg) in isMoveMask()
393 return getRegisterIndex(MemOp.OuterReg) < 16; in isMoveMask()
400 uint16_t MoveMask = MemOp.RegMask; in addMoveMaskOperands()
401 if (MemOp.Op == M68kMemOp::Kind::Reg) in addMoveMaskOperands()
402 MoveMask = 1 << getRegisterIndex(MemOp.OuterReg); in addMoveMaskOperands()
409 return isMemOp() && MemOp.Op == M68kMemOp::Kind::Addr; in isAddr()
416 if (MemOp.OuterDisp->evaluateAsAbsolute(Res)) in isAddrN()
423 M68kOperand::addExpr(Inst, MemOp.OuterDisp); in addAddrOperands()
428 return isMemOp() && MemOp.Op == M68kMemOp::Kind::RegIndirect && in isARI()
429 M68k::AR32RegClass.contains(MemOp.OuterReg); in isARI()
432 Inst.addOperand(MCOperand::createReg(MemOp.OuterReg)); in addARIOperands()
437 return isMemOp() && MemOp.Op == M68kMemOp::Kind::RegIndirectDisplacement && in isARID()
438 M68k::AR32RegClass.contains(MemOp.OuterReg); in isARID()
441 M68kOperand::addExpr(Inst, MemOp.OuterDisp); in addARIDOperands()
442 Inst.addOperand(MCOperand::createReg(MemOp.OuterReg)); in addARIDOperands()
448 MemOp.Op == M68kMemOp::Kind::RegIndirectDisplacementIndex && in isARII()
449 M68k::AR32RegClass.contains(MemOp.OuterReg); in isARII()
452 M68kOperand::addExpr(Inst, MemOp.OuterDisp); in addARIIOperands()
453 Inst.addOperand(MCOperand::createReg(MemOp.OuterReg)); in addARIIOperands()
454 Inst.addOperand(MCOperand::createReg(MemOp.InnerReg)); in addARIIOperands()
459 return isMemOp() && MemOp.Op == M68kMemOp::Kind::RegPreDecrement && in isARIPD()
460 M68k::AR32RegClass.contains(MemOp.OuterReg); in isARIPD()
463 Inst.addOperand(MCOperand::createReg(MemOp.OuterReg)); in addARIPDOperands()
468 return isMemOp() && MemOp.Op == M68kMemOp::Kind::RegPostIncrement && in isARIPI()
469 M68k::AR32RegClass.contains(MemOp.OuterReg); in isARIPI()
472 Inst.addOperand(MCOperand::createReg(MemOp.OuterReg)); in addARIPIOperands()
477 return isMemOp() && MemOp.Op == M68kMemOp::Kind::RegIndirectDisplacement && in isPCD()
478 MemOp.OuterReg == M68k::PC; in isPCD()
481 M68kOperand::addExpr(Inst, MemOp.OuterDisp); in addPCDOperands()
487 MemOp.Op == M68kMemOp::Kind::RegIndirectDisplacementIndex && in isPCI()
488 MemOp.OuterReg == M68k::PC; in isPCI()
491 M68kOperand::addExpr(Inst, MemOp.OuterDisp); in addPCIOperands()
492 Inst.addOperand(MCOperand::createReg(MemOp.InnerReg)); in addPCIOperands()
783 M68kMemOp MemOp; in parseMemOp() local
796 if (Parser.parseExpression(MemOp.OuterDisp)) in parseMemOp()
803 MemOp.Op = M68kMemOp::Kind::Addr; in parseMemOp()
805 M68kOperand::createMemOp(MemOp, Start, getLexer().getLoc())); in parseMemOp()
817 if (Parser.parseExpression(MemOp.OuterDisp)) in parseMemOp()
823 MemOp.Op = M68kMemOp::Kind::Addr; in parseMemOp()
825 M68kOperand::createMemOp(MemOp, Start, getLexer().getLoc())); in parseMemOp()
832 Result = parseRegister(MemOp.OuterReg); in parseMemOp()
844 Result = parseRegister(MemOp.InnerReg); in parseMemOp()
852 MemOp.Size = 4; in parseMemOp()
853 MemOp.Scale = 1; in parseMemOp()
854 MemOp.InnerDisp = MCConstantExpr::create(0, Parser.getContext(), true, 4); in parseMemOp()
876 MemOp.Op = M68kMemOp::Kind::RegPreDecrement; in parseMemOp()
878 MemOp.Op = M68kMemOp::Kind::RegPostIncrement; in parseMemOp()
880 MemOp.Op = M68kMemOp::Kind::RegIndirectDisplacementIndex; in parseMemOp()
882 MemOp.Op = M68kMemOp::Kind::RegIndirectDisplacement; in parseMemOp()
884 MemOp.Op = M68kMemOp::Kind::RegIndirect; in parseMemOp()
887 Operands.push_back(M68kOperand::createMemOp(MemOp, Start, End)); in parseMemOp()
893 M68kMemOp MemOp(M68kMemOp::Kind::RegMask); in parseRegOrMoveMask() local
894 MemOp.RegMask = 0; in parseRegOrMoveMask()
898 (MemOp.Op == M68kMemOp::Kind::RegMask) && (MemOp.RegMask == 0); in parseRegOrMoveMask()
923 MemOp.Op = M68kMemOp::Kind::Reg; in parseRegOrMoveMask()
924 MemOp.OuterReg = FirstRegister; in parseRegOrMoveMask()
926 if (MemOp.Op == M68kMemOp::Kind::Reg) { in parseRegOrMoveMask()
929 MemOp.Op = M68kMemOp::Kind::RegMask; in parseRegOrMoveMask()
930 MemOp.RegMask = 1 << getRegisterIndex(MemOp.OuterReg); in parseRegOrMoveMask()
932 if (MemOp.RegMask == 0) in parseRegOrMoveMask()
941 if (NewMaskBits & MemOp.RegMask) in parseRegOrMoveMask()
944 MemOp.RegMask |= NewMaskBits; in parseRegOrMoveMask()
952 M68kOperand::createMemOp(MemOp, Start, getLexer().getLoc())); in parseRegOrMoveMask()
1067 case KindTy::MemOp: in print()
1068 MemOp.print(OS); in print()