OperandMatchResultTy parseImm(OperandVector &Operands);
OperandMatchResultTy parseJumpTarget(OperandVector &Operands);
OperandMatchResultTy parseInvNum(OperandVector &Operands);
- OperandMatchResultTy parseRegisterPair(OperandVector &Operands);
OperandMatchResultTy parseMovePRegPair(OperandVector &Operands);
OperandMatchResultTy parseRegisterList(OperandVector &Operands);
return StringRef(Tok.Data, Tok.Length);
}
- bool isRegPair() const {
- return Kind == k_RegPair && RegIdx.Index <= 30;
- }
-
unsigned getReg() const override {
// As a special case until we sort out the definition of div/divu, accept
// $0/$zero here so that MCK_ZERO works correctly.
return MatchOperand_Success;
}
-OperandMatchResultTy
-MipsAsmParser::parseRegisterPair(OperandVector &Operands) {
- MCAsmParser &Parser = getParser();
-
- SMLoc S = Parser.getTok().getLoc();
- if (parseAnyRegister(Operands) != MatchOperand_Success)
- return MatchOperand_ParseFail;
-
- SMLoc E = Parser.getTok().getLoc();
- MipsOperand Op = static_cast<MipsOperand &>(*Operands.back());
-
- Operands.pop_back();
- Operands.push_back(MipsOperand::CreateRegPair(Op, S, E, *this));
- return MatchOperand_Success;
-}
-
OperandMatchResultTy
MipsAsmParser::parseMovePRegPair(OperandVector &Operands) {
MCAsmParser &Parser = getParser();
O << MipsFCCToString((Mips::CondCode)MO.getImm());
}
-void MipsInstPrinter::
-printRegisterPair(const MCInst *MI, int opNum, raw_ostream &O) {
- printRegName(O, MI->getOperand(opNum).getReg());
-}
-
void MipsInstPrinter::
printSHFMask(const MCInst *MI, int opNum, raw_ostream &O) {
llvm_unreachable("TODO");
void printMemOperand(const MCInst *MI, int opNum, raw_ostream &O);
void printMemOperandEA(const MCInst *MI, int opNum, raw_ostream &O);
void printFCCOperand(const MCInst *MI, int opNum, raw_ostream &O);
- void printRegisterPair(const MCInst *MI, int opNum, raw_ostream &O);
void printSHFMask(const MCInst *MI, int opNum, raw_ostream &O);
bool printAlias(const char *Str, const MCInst &MI, unsigned OpNo,
return (MI.getNumOperands() - 4);
}
-unsigned
-MipsMCCodeEmitter::getRegisterPairOpValue(const MCInst &MI, unsigned OpNo,
- SmallVectorImpl<MCFixup> &Fixups,
- const MCSubtargetInfo &STI) const {
- return getMachineOpValue(MI, MI.getOperand(OpNo), Fixups, STI);
-}
-
unsigned
MipsMCCodeEmitter::getMovePRegPairOpValue(const MCInst &MI, unsigned OpNo,
SmallVectorImpl<MCFixup> &Fixups,
SmallVectorImpl<MCFixup> &Fixups,
const MCSubtargetInfo &STI) const;
- unsigned getRegisterPairOpValue(const MCInst &MI, unsigned OpNo,
- SmallVectorImpl<MCFixup> &Fixups,
- const MCSubtargetInfo &STI) const;
-
unsigned getMovePRegPairOpValue(const MCInst &MI, unsigned OpNo,
SmallVectorImpl<MCFixup> &Fixups,
const MCSubtargetInfo &STI) const;