diff options
author | Nicolai Haehnle <nhaehnle@gmail.com> | 2019-05-15 17:48:10 +0000 |
---|---|---|
committer | Nicolai Haehnle <nhaehnle@gmail.com> | 2019-05-15 17:48:10 +0000 |
commit | f672b6170ce8cf1f3dac48a167947c868beaa6e5 (patch) | |
tree | 44baa3004ea73a4406b48e8e97ffd6ddf1da80b6 /llvm/lib/CodeGen/MachineOperand.cpp | |
parent | 4c50e64fc5cf945c77dd0396bd969fdbdab83e4e (diff) | |
download | llvm-f672b6170ce8cf1f3dac48a167947c868beaa6e5.zip llvm-f672b6170ce8cf1f3dac48a167947c868beaa6e5.tar.gz llvm-f672b6170ce8cf1f3dac48a167947c868beaa6e5.tar.bz2 |
[MachineOperand] Add a ChangeToGA method
Summary:
Analogous to the other ChangeToXXX methods. See the next patch for a
use case.
Change-Id: I6548d614706834fb9109ab3c8fe915e9c6ece2a7
Reviewers: arsenm, kzhuravl
Subscribers: wdng, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D61651
llvm-svn: 360789
Diffstat (limited to 'llvm/lib/CodeGen/MachineOperand.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineOperand.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineOperand.cpp b/llvm/lib/CodeGen/MachineOperand.cpp index 80011d4..a83459e 100644 --- a/llvm/lib/CodeGen/MachineOperand.cpp +++ b/llvm/lib/CodeGen/MachineOperand.cpp @@ -181,6 +181,19 @@ void MachineOperand::ChangeToES(const char *SymName, setTargetFlags(TargetFlags); } +void MachineOperand::ChangeToGA(const GlobalValue *GV, int64_t Offset, + unsigned char TargetFlags) { + assert((!isReg() || !isTied()) && + "Cannot change a tied operand into a global address"); + + removeRegFromUses(); + + OpKind = MO_GlobalAddress; + Contents.OffsetedInfo.Val.GV = GV; + setOffset(Offset); + setTargetFlags(TargetFlags); +} + void MachineOperand::ChangeToMCSymbol(MCSymbol *Sym) { assert((!isReg() || !isTied()) && "Cannot change a tied operand into an MCSymbol"); |