[mips] Add support for parsing target specific flags for MIR

Reviewers: atanasyan

Differential Revision: https://reviews.llvm.org/D38620

llvm-svn: 315451
This commit is contained in:
Simon Dardis 2017-10-11 11:11:35 +00:00
parent 08ac59ef4d
commit 41851e3546
2 changed files with 42 additions and 0 deletions

View File

@ -618,3 +618,39 @@ bool MipsInstrInfo::verifyInstruction(const MachineInstr &MI,
return true;
}
std::pair<unsigned, unsigned>
MipsInstrInfo::decomposeMachineOperandsTargetFlags(unsigned TF) const {
return std::make_pair(TF, 0u);
}
ArrayRef<std::pair<unsigned, const char*>>
MipsInstrInfo::getSerializableDirectMachineOperandTargetFlags() const {
using namespace MipsII;
static const std::pair<unsigned, const char*> Flags[] = {
{MO_GOT, "mips-got"},
{MO_GOT_CALL, "mips-got-call"},
{MO_GPREL, "mips-gprel"},
{MO_ABS_HI, "mips-abs-hi"},
{MO_ABS_LO, "mips-abs-lo"},
{MO_TLSGD, "mips-tlsgd"},
{MO_TLSLDM, "mips-tlsldm"},
{MO_DTPREL_HI, "mips-dtprel-hi"},
{MO_DTPREL_LO, "mips-dtprel-lo"},
{MO_GOTTPREL, "mips-gottprel"},
{MO_TPREL_HI, "mips-tprel-hi"},
{MO_TPREL_LO, "mips-tprel-lo"},
{MO_GPOFF_HI, "mips-gpoff-hi"},
{MO_GPOFF_LO, "mips-gpoff-lo"},
{MO_GOT_DISP, "mips-got-disp"},
{MO_GOT_PAGE, "mips-got-page"},
{MO_GOT_OFST, "mips-got-ofst"},
{MO_HIGHER, "mips-higher"},
{MO_HIGHEST, "mips-highest"},
{MO_GOT_HI16, "mips-got-hi16"},
{MO_GOT_LO16, "mips-got-lo16"},
{MO_CALL_HI16, "mips-call-hi16"},
{MO_CALL_LO16, "mips-call-lo16"}
};
return makeArrayRef(Flags);
}

View File

@ -152,6 +152,12 @@ public:
bool verifyInstruction(const MachineInstr &MI,
StringRef &ErrInfo) const override;
std::pair<unsigned, unsigned>
decomposeMachineOperandsTargetFlags(unsigned TF) const override;
ArrayRef<std::pair<unsigned, const char *>>
getSerializableDirectMachineOperandTargetFlags() const override;
protected:
bool isZeroImm(const MachineOperand &op) const;