/// Warn if RegIndex is the same as the current AT.
void warnIfRegIndexIsAT(unsigned RegIndex, SMLoc Loc);
+
+ void warnIfNoMacro(SMLoc Loc);
};
}
tmpInst.addOperand(MCOperand::createImm(ImmValue));
Instructions.push_back(tmpInst);
} else if (isInt<32>(ImmValue) || isUInt<32>(ImmValue)) {
- if (!AssemblerOptions.back()->isMacro())
- Warning(IDLoc, "macro instruction expanded into multiple instructions");
+ warnIfNoMacro(IDLoc);
// For all other values which are representable as a 32-bit integer:
// li d,j => lui d,hi16(j)
Error(IDLoc, "instruction requires a 32-bit immediate");
return true;
}
- if (!AssemblerOptions.back()->isMacro())
- Warning(IDLoc, "macro instruction expanded into multiple instructions");
+ warnIfNoMacro(IDLoc);
// <------- lo32 ------>
// <------- hi32 ------>
Error(IDLoc, "instruction requires a 32-bit immediate");
return true;
}
- if (!AssemblerOptions.back()->isMacro())
- Warning(IDLoc, "macro instruction expanded into multiple instructions");
+ warnIfNoMacro(IDLoc);
// <------- hi32 ------> <------- lo32 ------>
// <- hi16 -> <- lo16 ->
void MipsAsmParser::expandLoadAddressSym(
const MCOperand &DstRegOp, const MCOperand &SymOp, bool Is32BitSym,
SMLoc IDLoc, SmallVectorImpl<MCInst> &Instructions) {
- if (!AssemblerOptions.back()->isMacro())
- Warning(IDLoc, "macro instruction expanded into multiple instructions");
+ warnIfNoMacro(IDLoc);
if (Is32BitSym && isABI_N64())
Warning(IDLoc, "instruction loads the 32-bit address of a 64-bit symbol");
") without \".set noat\"");
}
+void MipsAsmParser::warnIfNoMacro(SMLoc Loc) {
+ if (!AssemblerOptions.back()->isMacro())
+ Warning(Loc, "macro instruction expanded into multiple instructions");
+}
+
void
MipsAsmParser::printWarningWithFixIt(const Twine &Msg, const Twine &FixMsg,
SMRange Range, bool ShowColors) {