diff options
Diffstat (limited to 'include/llvm/CodeGen/MachineOperand.h')
| -rw-r--r-- | include/llvm/CodeGen/MachineOperand.h | 24 | 
1 files changed, 16 insertions, 8 deletions
diff --git a/include/llvm/CodeGen/MachineOperand.h b/include/llvm/CodeGen/MachineOperand.h index 8c8ce71253e6..c43e47c36d06 100644 --- a/include/llvm/CodeGen/MachineOperand.h +++ b/include/llvm/CodeGen/MachineOperand.h @@ -27,6 +27,7 @@ class MachineBasicBlock;  class MachineInstr;  class MachineRegisterInfo;  class MDNode; +class ModuleSlotTracker;  class TargetMachine;  class TargetRegisterInfo;  class hash_code; @@ -218,6 +219,8 @@ public:    void clearParent() { ParentMI = nullptr; }    void print(raw_ostream &os, const TargetRegisterInfo *TRI = nullptr) const; +  void print(raw_ostream &os, ModuleSlotTracker &MST, +             const TargetRegisterInfo *TRI = nullptr) const;    //===--------------------------------------------------------------------===//    // Accessors that tell you what kind of MachineOperand you're looking at. @@ -450,11 +453,12 @@ public:      return Contents.CFIIndex;    } -  /// getOffset - Return the offset from the symbol in this operand. This always -  /// returns 0 for ExternalSymbol operands. +  /// Return the offset from the symbol in this operand. This always returns 0 +  /// for ExternalSymbol operands.    int64_t getOffset() const { -    assert((isGlobal() || isSymbol() || isCPI() || isTargetIndex() || -            isBlockAddress()) && "Wrong MachineOperand accessor"); +    assert((isGlobal() || isSymbol() || isMCSymbol() || isCPI() || +            isTargetIndex() || isBlockAddress()) && +           "Wrong MachineOperand accessor");      return int64_t(uint64_t(Contents.OffsetedInfo.OffsetHi) << 32) |             SmallContents.OffsetLo;    } @@ -512,8 +516,9 @@ public:    }    void setOffset(int64_t Offset) { -    assert((isGlobal() || isSymbol() || isCPI() || isTargetIndex() || -            isBlockAddress()) && "Wrong MachineOperand accessor"); +    assert((isGlobal() || isSymbol() || isMCSymbol() || isCPI() || +            isTargetIndex() || isBlockAddress()) && +           "Wrong MachineOperand accessor");      SmallContents.OffsetLo = unsigned(Offset);      Contents.OffsetedInfo.OffsetHi = int(Offset >> 32);    } @@ -703,9 +708,12 @@ public:      return Op;    } -  static MachineOperand CreateMCSymbol(MCSymbol *Sym) { +  static MachineOperand CreateMCSymbol(MCSymbol *Sym, +                                       unsigned char TargetFlags = 0) {      MachineOperand Op(MachineOperand::MO_MCSymbol);      Op.Contents.Sym = Sym; +    Op.setOffset(0); +    Op.setTargetFlags(TargetFlags);      return Op;    } @@ -741,6 +749,6 @@ inline raw_ostream &operator<<(raw_ostream &OS, const MachineOperand& MO) {    // See friend declaration above. This additional declaration is required in    // order to compile LLVM with IBM xlC compiler.    hash_code hash_value(const MachineOperand &MO); -} // namespace llvm +} // End llvm namespace  #endif  | 
