aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineOperand.cpp
diff options
context:
space:
mode:
authorhev <wangrui@loongson.cn>2025-09-18 10:06:33 +0800
committerGitHub <noreply@github.com>2025-09-18 10:06:33 +0800
commit7ca448e47965005b24d107aff6fab4644b8b81b4 (patch)
tree3d3b1ad81fa467b3d8d23b6f8e032220fd9d8bec /llvm/lib/CodeGen/MachineOperand.cpp
parent91c72e8169208099f85d0129f25c3a706265bc19 (diff)
downloadllvm-7ca448e47965005b24d107aff6fab4644b8b81b4.zip
llvm-7ca448e47965005b24d107aff6fab4644b8b81b4.tar.gz
llvm-7ca448e47965005b24d107aff6fab4644b8b81b4.tar.bz2
[LoongArch] Fix MergeBaseOffset for constant pool index operand (#159336)
Fixes #159200
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 c612f8de..bb9c76f 100644
--- a/llvm/lib/CodeGen/MachineOperand.cpp
+++ b/llvm/lib/CodeGen/MachineOperand.cpp
@@ -218,6 +218,19 @@ void MachineOperand::ChangeToBA(const BlockAddress *BA, int64_t Offset,
setTargetFlags(TargetFlags);
}
+void MachineOperand::ChangeToCPI(unsigned Idx, int Offset,
+ unsigned TargetFlags) {
+ assert((!isReg() || !isTied()) &&
+ "Cannot change a tied operand into a constant pool index");
+
+ removeRegFromUses();
+
+ OpKind = MO_ConstantPoolIndex;
+ setIndex(Idx);
+ setOffset(Offset);
+ setTargetFlags(TargetFlags);
+}
+
void MachineOperand::ChangeToMCSymbol(MCSymbol *Sym, unsigned TargetFlags) {
assert((!isReg() || !isTied()) &&
"Cannot change a tied operand into an MCSymbol");