Summary:
No functional change since these predicates are (currently) synonymous.
Extracted from a patch by David Chisnall
His work was sponsored by: DARPA, AFRL
Differential Revision: http://llvm-reviews.chandlerc.com/D3202
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204943
91177308-0d34-0410-b5e6-
96231b3b80d8
MCSymbolRefExpr::VariantKind getVariantKind(StringRef Symbol);
MCSymbolRefExpr::VariantKind getVariantKind(StringRef Symbol);
- bool isMips64() const {
- return (STI.getFeatureBits() & Mips::FeatureMips64) != 0;
+ bool isGP64() const {
+ return (STI.getFeatureBits() & Mips::FeatureGP64Bit) != 0;
const MCExpr *ExprOffset;
unsigned TmpRegNum;
unsigned AtRegNum = getReg(
const MCExpr *ExprOffset;
unsigned TmpRegNum;
unsigned AtRegNum = getReg(
- (isMips64()) ? Mips::GPR64RegClassID : Mips::GPR32RegClassID, getATReg());
+ (isGP64()) ? Mips::GPR64RegClassID : Mips::GPR32RegClassID, getATReg());
// 1st operand is either the source or destination register.
assert(Inst.getOperand(0).isReg() && "expected register operand kind");
unsigned RegOpNum = Inst.getOperand(0).getReg();
// 1st operand is either the source or destination register.
assert(Inst.getOperand(0).isReg() && "expected register operand kind");
unsigned RegOpNum = Inst.getOperand(0).getReg();
}
unsigned MipsAsmParser::getGPR(int RegNo) {
}
unsigned MipsAsmParser::getGPR(int RegNo) {
- return getReg((isMips64()) ? Mips::GPR64RegClassID : Mips::GPR32RegClassID,
- RegNo);
+ return getReg(isGP64() ? Mips::GPR64RegClassID : Mips::GPR32RegClassID,
+ RegNo);
int MipsAsmParser::matchRegisterByNumber(unsigned RegNum, unsigned RegClass) {
if (RegNum >
getContext().getRegisterInfo()->getRegClass(RegClass).getNumRegs() - 1)
int MipsAsmParser::matchRegisterByNumber(unsigned RegNum, unsigned RegClass) {
if (RegNum >
getContext().getRegisterInfo()->getRegClass(RegClass).getNumRegs() - 1)
SMLoc S = Parser.getTok().getLoc();
Parser.Lex(); // Eat dollar token.
// Parse the register operand.
SMLoc S = Parser.getTok().getLoc();
Parser.Lex(); // Eat dollar token.
// Parse the register operand.
- if (!tryParseRegisterOperand(Operands, isMips64())) {
+ if (!tryParseRegisterOperand(Operands, isGP64())) {
if (getLexer().is(AsmToken::LParen)) {
// Check if it is indexed addressing operand.
Operands.push_back(MipsOperand::CreateToken("(", S));
if (getLexer().is(AsmToken::LParen)) {
// Check if it is indexed addressing operand.
Operands.push_back(MipsOperand::CreateToken("(", S));
return true;
Parser.Lex(); // Eat the dollar
return true;
Parser.Lex(); // Eat the dollar
- if (tryParseRegisterOperand(Operands, isMips64()))
+ if (tryParseRegisterOperand(Operands, isGP64()))
return true;
if (!getLexer().is(AsmToken::RParen))
return true;
if (!getLexer().is(AsmToken::RParen))
bool MipsAsmParser::ParseRegister(unsigned &RegNo, SMLoc &StartLoc,
SMLoc &EndLoc) {
StartLoc = Parser.getTok().getLoc();
bool MipsAsmParser::ParseRegister(unsigned &RegNo, SMLoc &StartLoc,
SMLoc &EndLoc) {
StartLoc = Parser.getTok().getLoc();
- RegNo = tryParseRegister(isMips64());
+ RegNo = tryParseRegister(isGP64());
EndLoc = Parser.getTok().getLoc();
return (RegNo == (unsigned)-1);
}
EndLoc = Parser.getTok().getLoc();
return (RegNo == (unsigned)-1);
}
// Zero register assumed, add a memory operand with ZERO as its base.
Operands.push_back(MipsOperand::CreateMem(
// Zero register assumed, add a memory operand with ZERO as its base.
Operands.push_back(MipsOperand::CreateMem(
- isMips64() ? Mips::ZERO_64 : Mips::ZERO, IdVal, S, E));
+ isGP64() ? Mips::ZERO_64 : Mips::ZERO, IdVal, S, E));
return MatchOperand_Success;
}
Error(Parser.getTok().getLoc(), "'(' expected");
return MatchOperand_Success;
}
Error(Parser.getTok().getLoc(), "'(' expected");
Parser.Lex(); // Eat the '(' token.
}
Parser.Lex(); // Eat the '(' token.
}
- Res = parseRegs(Operands, isMips64() ? (int)MipsOperand::Kind_GPR64
- : (int)MipsOperand::Kind_GPR32);
+ Res = parseRegs(Operands, isGP64() ? (int)MipsOperand::Kind_GPR64
+ : (int)MipsOperand::Kind_GPR32);
if (Res != MatchOperand_Success)
return Res;
if (Res != MatchOperand_Success)
return Res;
MipsAsmParser::OperandMatchResultTy
MipsAsmParser::parseGPR64(SmallVectorImpl<MCParsedAsmOperand *> &Operands) {
MipsAsmParser::OperandMatchResultTy
MipsAsmParser::parseGPR64(SmallVectorImpl<MCParsedAsmOperand *> &Operands) {
return MatchOperand_NoMatch;
return parseRegs(Operands, (int)MipsOperand::Kind_GPR64);
}
return MatchOperand_NoMatch;
return parseRegs(Operands, (int)MipsOperand::Kind_GPR64);
}
APInt IntVal(32, -1);
if (!DefSymbol.substr(1).getAsInteger(10, IntVal))
RegNum = matchRegisterByNumber(IntVal.getZExtValue(),
APInt IntVal(32, -1);
if (!DefSymbol.substr(1).getAsInteger(10, IntVal))
RegNum = matchRegisterByNumber(IntVal.getZExtValue(),
- isMips64() ? Mips::GPR64RegClassID
- : Mips::GPR32RegClassID);
+ isGP64() ? Mips::GPR64RegClassID
+ : Mips::GPR32RegClassID);
else {
// Lookup for the register with the corresponding name.
switch (Kind) {
else {
// Lookup for the register with the corresponding name.
switch (Kind) {
return std::make_pair(0U, &Mips::CPU16RegsRegClass);
return std::make_pair(0U, &Mips::GPR32RegClass);
}
return std::make_pair(0U, &Mips::CPU16RegsRegClass);
return std::make_pair(0U, &Mips::GPR32RegClass);
}
- if (VT == MVT::i64 && !hasMips64())
+ if (VT == MVT::i64 && !isGP64bit())
return std::make_pair(0U, &Mips::GPR32RegClass);
return std::make_pair(0U, &Mips::GPR32RegClass);
- if (VT == MVT::i64 && hasMips64())
+ if (VT == MVT::i64 && isGP64bit())
return std::make_pair(0U, &Mips::GPR64RegClass);
// This will generate an error message
return std::make_pair(0u, static_cast<const TargetRegisterClass*>(0));
return std::make_pair(0U, &Mips::GPR64RegClass);
// This will generate an error message
return std::make_pair(0u, static_cast<const TargetRegisterClass*>(0));
const MipsSubtarget *Subtarget;
bool hasMips64() const { return Subtarget->hasMips64(); }
const MipsSubtarget *Subtarget;
bool hasMips64() const { return Subtarget->hasMips64(); }
+ bool isGP64bit() const { return Subtarget->isGP64bit(); }
bool isO32() const { return Subtarget->isABI_O32(); }
bool isN32() const { return Subtarget->isABI_N32(); }
bool isN64() const { return Subtarget->isABI_N64(); }
bool isO32() const { return Subtarget->isABI_O32(); }
bool isN32() const { return Subtarget->isABI_N32(); }
bool isN64() const { return Subtarget->isABI_N64(); }
case ISD::ConstantFP: {
ConstantFPSDNode *CN = dyn_cast<ConstantFPSDNode>(Node);
if (Node->getValueType(0) == MVT::f64 && CN->isExactlyValue(+0.0)) {
case ISD::ConstantFP: {
ConstantFPSDNode *CN = dyn_cast<ConstantFPSDNode>(Node);
if (Node->getValueType(0) == MVT::f64 && CN->isExactlyValue(+0.0)) {
- if (Subtarget.hasMips64()) {
+ if (Subtarget.isGP64bit()) {
SDValue Zero = CurDAG->getCopyFromReg(CurDAG->getEntryNode(), DL,
Mips::ZERO_64, MVT::i64);
Result = CurDAG->getMachineNode(Mips::DMTC1, DL, MVT::f64, Zero);
SDValue Zero = CurDAG->getCopyFromReg(CurDAG->getEntryNode(), DL,
Mips::ZERO_64, MVT::i64);
Result = CurDAG->getMachineNode(Mips::DMTC1, DL, MVT::f64, Zero);
// Set up the register classes
addRegisterClass(MVT::i32, &Mips::GPR32RegClass);
// Set up the register classes
addRegisterClass(MVT::i32, &Mips::GPR32RegClass);
addRegisterClass(MVT::i64, &Mips::GPR64RegClass);
if (Subtarget->hasDSP() || Subtarget->hasMSA()) {
addRegisterClass(MVT::i64, &Mips::GPR64RegClass);
if (Subtarget->hasDSP() || Subtarget->hasMSA()) {
((getFeatureBits() & Mips::FeatureN64) != 0)) == 1);
// Check if Architecture and ABI are compatible.
((getFeatureBits() & Mips::FeatureN64) != 0)) == 1);
// Check if Architecture and ABI are compatible.
- assert(((!hasMips64() && (isABI_O32() || isABI_EABI())) ||
- (hasMips64() && (isABI_N32() || isABI_N64()))) &&
+ assert(((!isGP64bit() && (isABI_O32() || isABI_EABI())) ||
+ (isGP64bit() && (isABI_N32() || isABI_N64()))) &&
"Invalid Arch & ABI pair.");
if (hasMSA() && !isFP64bit())
"Invalid Arch & ABI pair.");
if (hasMSA() && !isFP64bit())
RegClassVector &CriticalPathRCs) const {
Mode = TargetSubtargetInfo::ANTIDEP_NONE;
CriticalPathRCs.clear();
RegClassVector &CriticalPathRCs) const {
Mode = TargetSubtargetInfo::ANTIDEP_NONE;
CriticalPathRCs.clear();
- CriticalPathRCs.push_back(hasMips64() ?
- &Mips::GPR64RegClass : &Mips::GPR32RegClass);
+ CriticalPathRCs.push_back(isGP64bit() ? &Mips::GPR64RegClass
+ : &Mips::GPR32RegClass);
return OptLevel >= CodeGenOpt::Aggressive;
}
return OptLevel >= CodeGenOpt::Aggressive;
}