diff options
author | hev <wangrui@loongson.cn> | 2025-09-18 10:06:33 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-18 10:06:33 +0800 |
commit | 7ca448e47965005b24d107aff6fab4644b8b81b4 (patch) | |
tree | 3d3b1ad81fa467b3d8d23b6f8e032220fd9d8bec /llvm/lib/CodeGen/MachineOperand.cpp | |
parent | 91c72e8169208099f85d0129f25c3a706265bc19 (diff) | |
download | llvm-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.cpp | 13 |
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"); |