From 2b88f1857e8a07eda46801341c14cc5be01d096f Mon Sep 17 00:00:00 2001 From: Simon Dardis Date: Wed, 11 Oct 2017 11:11:35 +0000 Subject: [PATCH] [mips] Add support for parsing target specific flags for MIR Reviewers: atanasyan Differential Revision: https://reviews.llvm.org/D38620 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315451 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Mips/MipsInstrInfo.cpp | 36 +++++++++++++++++++++++++++++++ lib/Target/Mips/MipsInstrInfo.h | 6 ++++++ 2 files changed, 42 insertions(+) diff --git a/lib/Target/Mips/MipsInstrInfo.cpp b/lib/Target/Mips/MipsInstrInfo.cpp index 82dc442a53d..a872fff65e4 100644 --- a/lib/Target/Mips/MipsInstrInfo.cpp +++ b/lib/Target/Mips/MipsInstrInfo.cpp @@ -618,3 +618,39 @@ bool MipsInstrInfo::verifyInstruction(const MachineInstr &MI, return true; } +std::pair +MipsInstrInfo::decomposeMachineOperandsTargetFlags(unsigned TF) const { + return std::make_pair(TF, 0u); +} + +ArrayRef> +MipsInstrInfo::getSerializableDirectMachineOperandTargetFlags() const { + using namespace MipsII; + + static const std::pair 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); +} diff --git a/lib/Target/Mips/MipsInstrInfo.h b/lib/Target/Mips/MipsInstrInfo.h index 0830b57cd05..a5ed1be3bee 100644 --- a/lib/Target/Mips/MipsInstrInfo.h +++ b/lib/Target/Mips/MipsInstrInfo.h @@ -152,6 +152,12 @@ public: bool verifyInstruction(const MachineInstr &MI, StringRef &ErrInfo) const override; + std::pair + decomposeMachineOperandsTargetFlags(unsigned TF) const override; + + ArrayRef> + getSerializableDirectMachineOperandTargetFlags() const override; + protected: bool isZeroImm(const MachineOperand &op) const; -- 2.50.1