MCSubtargetInfo &STI;
MCAsmParser &Parser;
- MipsAssemblerOptions *Options;
+ MipsAssemblerOptions Options;
#define GET_ASSEMBLER_HEADER
: MCTargetAsmParser(), STI(sti), Parser(parser) {
// Initialize the set of available features.
setAvailableFeatures(ComputeAvailableFeatures(STI.getFeatureBits()));
- Options = new MipsAssemblerOptions();
}
MCAsmParser &getParser() const { return Parser; }
}
unsigned MipsAsmParser::getATReg() {
- unsigned Reg = Options->getATRegNum();
+ unsigned Reg = Options.getATRegNum();
if (isMips64())
return getReg(Mips::CPU64RegsRegClassID,Reg);
- else
- return getReg(Mips::CPURegsRegClassID,Reg);
+
+ return getReg(Mips::CPURegsRegClassID,Reg);
}
unsigned MipsAsmParser::getReg(int RC,int RegNo) {
// line should look like:
// .set noat
// set at reg to 0
- Options->setATReg(0);
+ Options.setATReg(0);
// eat noat
Parser.Lex();
// if this is not the end of the statement, report error
// or .set at=$reg
getParser().Lex();
if (getLexer().is(AsmToken::EndOfStatement)) {
- Options->setATReg(1);
+ Options.setATReg(1);
Parser.Lex(); // Consume the EndOfStatement
return false;
} else if (getLexer().is(AsmToken::Equal)) {
return false;
}
const AsmToken &Reg = Parser.getTok();
- if (!Options->setATReg(Reg.getIntVal())) {
+ if (!Options.setATReg(Reg.getIntVal())) {
reportParseError("unexpected token in statement");
return false;
}
reportParseError("unexpected token in statement");
return false;
}
- Options->setReorder();
+ Options.setReorder();
Parser.Lex(); // Consume the EndOfStatement
return false;
}
reportParseError("unexpected token in statement");
return false;
}
- Options->setNoreorder();
+ Options.setNoreorder();
Parser.Lex(); // Consume the EndOfStatement
return false;
}
reportParseError("unexpected token in statement");
return false;
}
- Options->setMacro();
+ Options.setMacro();
Parser.Lex(); // Consume the EndOfStatement
return false;
}
reportParseError("`noreorder' must be set before `nomacro'");
return false;
}
- if (Options->isReorder()) {
+ if (Options.isReorder()) {
reportParseError("`noreorder' must be set before `nomacro'");
return false;
}
- Options->setNomacro();
+ Options.setNomacro();
Parser.Lex(); // Consume the EndOfStatement
return false;
}