[llvm] [PowerPC] Utilize `getReservedRegs` to find asm clobberable registers. (PR #99766)
zhijian lin via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 4 07:54:34 PDT 2024
================
@@ -441,14 +442,11 @@ BitVector PPCRegisterInfo::getReservedRegs(const MachineFunction &MF) const {
bool PPCRegisterInfo::isAsmClobberable(const MachineFunction &MF,
MCRegister PhysReg) const {
- // We cannot use getReservedRegs() to find the registers that are not asm
- // clobberable because there are some reserved registers which can be
- // clobbered by inline asm. For example, when LR is clobbered, the register is
- // saved and restored. We will hardcode the registers that are not asm
- // cloberable in this function.
-
- // The stack pointer (R1/X1) is not clobberable by inline asm
- return PhysReg != PPC::R1 && PhysReg != PPC::X1;
+ // The counter registers are always reserved, but they are asm clobberable.
+ if (PhysReg == PPC::CTR || PhysReg == PPC::CTR8)
+ return true;
----------------
diggerlin wrote:
```
if (PhysReg == PPC::CTR || PhysReg == PPC::CTR8 || PhysReg == PPC::LR ||
PhysReg == PPC::LR)
```
need to be change to
` if (PhysReg == PPC::CTR || PhysReg == PPC::CTR8 || PhysReg == PPC::LR)`
https://github.com/llvm/llvm-project/pull/99766
More information about the llvm-commits
mailing list