Remove unused code.

cc_out and pred operands are added during parsing via custom C++ now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135497 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Grosbach 2011-07-19 18:32:48 +00:00
parent 29af0918ce
commit 5a18700470

View File

@ -1959,12 +1959,12 @@ static StringRef SplitMnemonic(StringRef Mnemonic,
Mnemonic == "vcle" ||
(Mnemonic == "smlal" || Mnemonic == "umaal" || Mnemonic == "umlal" ||
Mnemonic == "vabal" || Mnemonic == "vmlal" || Mnemonic == "vpadal" ||
Mnemonic == "vqdmlal" || Mnemonic == "bics"))
Mnemonic == "vqdmlal"))
return Mnemonic;
// First, split out any predication code. Ignore mnemonics we know aren't
// predicated but do have a carry-set and so weren't caught above.
if (Mnemonic != "adcs") {
if (Mnemonic != "adcs" && Mnemonic != "bics") {
unsigned CC = StringSwitch<unsigned>(Mnemonic.substr(Mnemonic.size()-2))
.Case("eq", ARMCC::EQ)
.Case("ne", ARMCC::NE)
@ -2167,59 +2167,8 @@ MatchAndEmitInstruction(SMLoc IDLoc,
MCStreamer &Out) {
MCInst Inst;
unsigned ErrorInfo;
MatchResultTy MatchResult, MatchResult2;
MatchResultTy MatchResult;
MatchResult = MatchInstructionImpl(Operands, Inst, ErrorInfo);
if (MatchResult != Match_Success) {
// If we get a Match_InvalidOperand it might be some arithmetic instruction
// that does not update the condition codes. So try adding a CCOut operand
// with a value of reg0.
if (MatchResult == Match_InvalidOperand) {
Operands.insert(Operands.begin() + 1,
ARMOperand::CreateCCOut(0,
((ARMOperand*)Operands[0])->getStartLoc()));
MatchResult2 = MatchInstructionImpl(Operands, Inst, ErrorInfo);
if (MatchResult2 == Match_Success)
MatchResult = Match_Success;
else {
ARMOperand *CCOut = ((ARMOperand*)Operands[1]);
Operands.erase(Operands.begin() + 1);
delete CCOut;
}
}
// If we get a Match_MnemonicFail it might be some arithmetic instruction
// that updates the condition codes if it ends in 's'. So see if the
// mnemonic ends in 's' and if so try removing the 's' and adding a CCOut
// operand with a value of CPSR.
else if (MatchResult == Match_MnemonicFail) {
// Get the instruction mnemonic, which is the first token.
StringRef Mnemonic = ((ARMOperand*)Operands[0])->getToken();
if (Mnemonic.substr(Mnemonic.size()-1) == "s") {
// removed the 's' from the mnemonic for matching.
StringRef MnemonicNoS = Mnemonic.slice(0, Mnemonic.size() - 1);
SMLoc NameLoc = ((ARMOperand*)Operands[0])->getStartLoc();
ARMOperand *OldMnemonic = ((ARMOperand*)Operands[0]);
Operands.erase(Operands.begin());
delete OldMnemonic;
Operands.insert(Operands.begin(),
ARMOperand::CreateToken(MnemonicNoS, NameLoc));
Operands.insert(Operands.begin() + 1,
ARMOperand::CreateCCOut(ARM::CPSR, NameLoc));
MatchResult2 = MatchInstructionImpl(Operands, Inst, ErrorInfo);
if (MatchResult2 == Match_Success)
MatchResult = Match_Success;
else {
ARMOperand *OldMnemonic = ((ARMOperand*)Operands[0]);
Operands.erase(Operands.begin());
delete OldMnemonic;
Operands.insert(Operands.begin(),
ARMOperand::CreateToken(Mnemonic, NameLoc));
ARMOperand *CCOut = ((ARMOperand*)Operands[1]);
Operands.erase(Operands.begin() + 1);
delete CCOut;
}
}
}
}
switch (MatchResult) {
case Match_Success:
Out.EmitInstruction(Inst);