MIR Serialization: Serialize the null register operands.

This commit serializes the null register machine operands.
It uses the '_' keyword to represent them, but the parser
also allows the '%noreg' named register syntax.

Reviewers: Duncan P. N. Exon Smith

Differential Revision: http://reviews.llvm.org/D10580


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240558 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Alex Lorenz
2015-06-24 17:34:58 +00:00
parent baf8f6a261
commit d89b55e309
5 changed files with 39 additions and 4 deletions

View File

@ -144,9 +144,10 @@ void MIPrinter::print(const MachineInstr &MI) {
static void printReg(unsigned Reg, raw_ostream &OS,
const TargetRegisterInfo *TRI) {
// TODO: Print Stack Slots.
// TODO: Print no register.
// TODO: Print virtual registers.
if (Reg < TRI->getNumRegs())
if (!Reg)
OS << '_';
else if (Reg < TRI->getNumRegs())
OS << '%' << StringRef(TRI->getName(Reg)).lower();
else
llvm_unreachable("Can't print this kind of register yet");