aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineOperand.cpp
diff options
context:
space:
mode:
authorNicolai Haehnle <nhaehnle@gmail.com>2019-05-15 17:48:10 +0000
committerNicolai Haehnle <nhaehnle@gmail.com>2019-05-15 17:48:10 +0000
commitf672b6170ce8cf1f3dac48a167947c868beaa6e5 (patch)
tree44baa3004ea73a4406b48e8e97ffd6ddf1da80b6 /llvm/lib/CodeGen/MachineOperand.cpp
parent4c50e64fc5cf945c77dd0396bd969fdbdab83e4e (diff)
downloadllvm-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.cpp13
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");