diff options
Diffstat (limited to 'llvm/lib/Target/SystemZ/SystemZInstrInfo.h')
| -rw-r--r-- | llvm/lib/Target/SystemZ/SystemZInstrInfo.h | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZInstrInfo.h b/llvm/lib/Target/SystemZ/SystemZInstrInfo.h index 7b9ad7b..9fadf7b 100644 --- a/llvm/lib/Target/SystemZ/SystemZInstrInfo.h +++ b/llvm/lib/Target/SystemZ/SystemZInstrInfo.h @@ -71,18 +71,13 @@ enum { MO_GOT = (1 << 0), // @INDNTPOFF - MO_INDNTPOFF = (2 << 0) -}; + MO_INDNTPOFF = (2 << 0), -// z/OS XPLink specific: classifies the types of -// accesses to the ADA (Associated Data Area). -// These enums contains values that overlap with the above MO_ enums, -// but that's fine since the above enums are used with ELF, -// while these values are used with z/OS. -enum { - MO_ADA_DATA_SYMBOL_ADDR = 1, - MO_ADA_INDIRECT_FUNC_DESC, - MO_ADA_DIRECT_FUNC_DESC, + // z/OS XPLink specific: classifies the types of + // accesses to the ADA (Associated Data Area). + MO_ADA_DATA_SYMBOL_ADDR = (1 << 2), + MO_ADA_INDIRECT_FUNC_DESC = (2 << 2), + MO_ADA_DIRECT_FUNC_DESC = (3 << 2), }; // Classifies a branch. @@ -281,12 +276,14 @@ public: void storeRegToStackSlot( MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, Register SrcReg, bool isKill, int FrameIndex, const TargetRegisterClass *RC, - const TargetRegisterInfo *TRI, Register VReg, + + Register VReg, MachineInstr::MIFlag Flags = MachineInstr::NoFlags) const override; void loadRegFromStackSlot( MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, Register DestReg, int FrameIdx, const TargetRegisterClass *RC, - const TargetRegisterInfo *TRI, Register VReg, + + Register VReg, MachineInstr::MIFlag Flags = MachineInstr::NoFlags) const override; MachineInstr *convertToThreeAddress(MachineInstr &MI, LiveVariables *LV, LiveIntervals *LIS) const override; @@ -389,6 +386,12 @@ public: std::optional<DestSourcePair> isCopyInstrImpl(const MachineInstr &MI) const override; + + std::pair<unsigned, unsigned> + decomposeMachineOperandsTargetFlags(unsigned TF) const override; + + ArrayRef<std::pair<unsigned, const char *>> + getSerializableDirectMachineOperandTargetFlags() const override; }; } // end namespace llvm |
